3⃣
Hardware Integration
- 1.Launch the robot's motor and sensor drivers.
- 2.Run
rosnode list
to find the names of the ROS nodes of the drivers. - 3.Run
rosnode info <node>
, where <node> is the name of the nodes determined from step 2. Sample output:$ rosnode info /motors_ctrl--------------------------------------------------------------------------------Node [/motors_ctrl]Publications:* /odom [nav_msgs/Odometry]* /odom_euler [std_msgs/String]* /robot_batt_perc [std_msgs/Int16]* /rosout [rosgraph_msgs/Log]* /tf [tf2_msgs/TFMessage]Subscriptions:* /cmd_vel [geometry_msgs/Twist] - 4.From the information displayed from running step 3, make sure that:
- 1.The robot motor driver node subscribes to the topic
/cmd_vel
for velocity commands. - 2.The Lidar driver node publishes laser data to the topic
/scan
- 5.If the topic names are not set as in step 4, remap them in the launch files of the drivers by adding a line in the launch files in the following format:<node ...<remap from="<original topic name>" to="/cmd_vel"/></node>
- 6.While the robot base and lidar are launched, run
rosrun rqt_tf_tree rqt_tf_tree
and check that the frames are linked in this order: odom → base_link → laser. - 7.If the frames of base_link and laser are not linked correctly, there are two options you can link them. You can select one of them. (Prefer use Broadcast a transformation)
- 1.
- 2.Create static transformation. Add the following line in the launch file of the lidar drivers:<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.22 0 0.1397 0 0 0 base_link laser 100" />In “args”, x = 0.22, y = 0, z = 0.1397, yaw = 0, pitch = 0, roll = 0 for this example. This should provide a transformation between the base_link and laser frame If you use static transformation, there will be several issues, one of the most is localizer mode, the UI won't visualize a laser scan in localizer mode.
- 8.With the driver nodes running, run RVIZ using:
rosrun rviz rviz
, do the following checks:- 1.Laser data
("/scan")
can be seen and is orientated in the correct direction. - 2.Movement direction during teleoperation is correct.
- 3.Robot odometry
("/odom")
is updating correctly during teleoperation.
Last modified 2mo ago