ROS2 robot localization package. The Aruco marker, which is placed on the top side of the robot, is detected by the top-view camera.
This package based on aruco_robot_localization CMake package.
Published topics:
/camera_loc/pose– robot position in global coordinate frame/camera_loc/path– robot path
Also, node broadcast transform from map to robot frame according to robot position.
Node parameters:
sample_period– sample period of localization (ms). Default: 40.dict_id– marker dictionary ID (see table below). Default: 0.marker_id– marker ID. Default: 0.cam_id– camera ID. ID is assigned incrementally to each camera starting from 0. Default: 0.camera_resolution.widthandcamera_resolution.heigh– width and height of camera frame in pixels. Default: 1920x1080.cam_focus– camera focus from 0 to 255 with step 5. Zero is autofocus. Default: 0.cam_exposure– camera exposure. Default: 0.parent_frame_id– parent frame ID. Default: "map".child_frame_id– robot (or Aruco marker) frame ID. Default: "robot".pixel_resolution.xandpixel_resolution.y– pixel resolution along X (columns) and Y (rows) axes. Default: 1.0 and 1.0.
dict_id |
marker dictionary |
|---|---|
| 0 | DICT_4X4_50 |
| 1 | DICT_4X4_100 |
| 2 | DICT_4X4_250 |
| 3 | DICT_4X4_1000 |
| 4 | DICT_5X5_50 |
| 5 | DICT_5X5_100 |
| 6 | DICT_5X5_250 |
| 7 | DICT_5X5_1000 |
| 8 | DICT_6X6_50 |
| 9 | DICT_6X6_100 |
| 10 | DICT_6X6_250 |
| 11 | DICT_6X6_1000 |
| 12 | DICT_7X7_50 |
| 13 | DICT_7X7_100 |
| 14 | DICT_7X7_250 |
| 15 | DICT_7X7_1000 |
| 16 | DICT_ARUCO_ORIGINAL |
| 17 | DICT_APRILTAG_16h5 |
| 18 | DICT_APRILTAG_25h9 |
| 19 | DICT_APRILTAG_36h10 |
| 20 | DICT_APRILTAG_36h11 |
Node gets first message from /pose topic and broadcast static transform that shows a start robot position in global coordinate frame.
This transform is used for show local navigation (e.g. wheel odometry, IMU).
Subscribed topics:
/pose– robot position in global coordinate frame
Node parameters:
parent_frame_id– parent frame ID. Default: "map".child_frame_id– initial position frame ID. Default: "init_pose".
- ROS2 Foxy or later
- OpenCV v4.2.0 or later