unitreerobotics / unitree_ros_to_real

97 stars 91 forks source link

Odometry data not published #67

Open LinusNEP opened 10 months ago

LinusNEP commented 10 months ago

Has anyone successfully implemented autonomous navigation for the Go1 robot using the ROS navigation stack? I am trying to implement such, and I've encountered an issue: there's no odometry data (/odom) being published. My AMCL node requires the /odom data to accurately estimate the robot pose. Currently, I can only access the /cmd_vel and /high_state topics. Any suggestions or advice would be greatly appreciated.

vchint6 commented 9 months ago

I have a lidar attached to my Go1 and the lidar has odom topic being published. But i am unable to publish /cmd_vel. can you suggest me a way to access /cmd_vel?

LinusNEP commented 9 months ago

I have a lidar attached to my Go1 and the lidar has odom topic being published. But i am unable to publish /cmd_vel. can you suggest me a way to access /cmd_vel?

You can access the /cmd_vel by launching the roslaunch unitree_legged_real keyboard_control.launch node, found at https://github.com/unitreerobotics/unitree_ros_to_real. What kind of lidar did you use to provide the /odom data to the ROS navigation stack?

vchint6 commented 9 months ago

I have a lidar attached to my Go1 and the lidar has odom topic being published. But i am unable to publish /cmd_vel. can you suggest me a way to access /cmd_vel?

You can access the /cmd_vel by launching the roslaunch unitree_legged_real keyboard_control.launch node, found at https://github.com/unitreerobotics/unitree_ros_to_real. What kind of lidar did you use to provide the /odom data to the ROS navigation stack?

I am using RPLidar Mapper https://www.slamtec.ai/home/mapper/ for navigation.

xyq1223 commented 9 months ago

Hello, regarding this problem, it is because we do not publish the ros standard odometer topic by default. Users need to subscribe to the HighState message themselves and then forward the standard ros odometer message.

manik9000 commented 8 months ago

@xyq1223 can you elaborate?

Can you share some tutorial?

Also can you share details on some TF tree?

manik9000 commented 8 months ago

@LinusNEP @vchint6 Did you guys figured it ?

What are you doing about the TF that's published by default. I see that there are two trees that are not connected.

Following issue has the screenshot of TF tree.

https://github.com/unitreerobotics/unitree_ros_to_real/issues/18#issue-1150431948

hrl-bonn commented 5 months ago

@manik9000 @LinusNEP @xyq1223 @vchint6 Hi guys.. Does any can help me? Here is my problem: My robot, GO1, is turned on successfully and I am controlling it with a joystick; however, I have a few problems with ROS topics. When I write rostopic list, the terminal shows these: /camera1/point_cloud_face /camera1/range_visual_face /camera2/point_cloud_chin /camera3/range_visual_left /camera4/point_cloud_right /camera4/range_visual_right /camera5/point_cloud_rearDown /cmd_odom /cmd_vel /cmd_vel_2 /joint_states /lcm_node/obs_env /lcm_node/ultrasonic_env /map /move_base/cancel /move_base/feedback /move_base/goal /move_base/result /move_base/status /move_base_simple/goal /odom /pointcloud_process/ground_pointcloud /range_front /range_left /range_right /range_ultrasonic_face /range_ultrasonic_left /range_ultrasonic_right /ros2udp/odom /ros2udp_motion_mode_adv/joystick /rosout /rosout_agg /scan /slam_planner_node/DBLocalPlannerROS/global_plan /slam_planner_node/DBLocalPlannerROS/local_plan /slam_planner_node/DBLocalPlannerROS/obstacles /slam_planner_node/DBLocalPlannerROS/parameter_descriptions /slam_planner_node/DBLocalPlannerROS/parameter_updates /slam_planner_node/DBLocalPlannerROS/teb_feedback /slam_planner_node/DBLocalPlannerROS/teb_markers /slam_planner_node/DBLocalPlannerROS/teb_poses /slam_planner_node/DBLocalPlannerROS/via_points /slam_planner_node/GlobalPlanner/parameter_descriptions /slam_planner_node/GlobalPlanner/parameter_updates /slam_planner_node/GlobalPlanner/plan /slam_planner_node/GlobalPlanner/potential /slam_planner_node/current_goal /slam_planner_node/global_costmap/costmap /slam_planner_node/global_costmap/costmap_updates /slam_planner_node/global_costmap/footprint /slam_planner_node/global_costmap/inflation_layer/parameter_descriptions /slam_planner_node/global_costmap/inflation_layer/parameter_updates /slam_planner_node/global_costmap/obstacle_layer/clearing_endpoints /slam_planner_node/global_costmap/obstacle_layer/parameter_descriptions /slam_planner_node/global_costmap/obstacle_layer/parameter_updates /slam_planner_node/global_costmap/parameter_descriptions /slam_planner_node/global_costmap/parameter_updates /slam_planner_node/global_costmap/static_layer/parameter_descriptions /slam_planner_node/global_costmap/static_layer/parameter_updates /slam_planner_node/local_costmap/costmap /slam_planner_node/local_costmap/costmap_updates /slam_planner_node/local_costmap/footprint /slam_planner_node/local_costmap/obstacle_layer/parameter_descriptions /slam_planner_node/local_costmap/obstacle_layer/parameter_updates /slam_planner_node/local_costmap/parameter_descriptions /slam_planner_node/local_costmap/parameter_updates /slam_planner_node/local_costmap/static_layer/parameter_descriptions /slam_planner_node/local_costmap/static_layer/parameter_updates /slam_planner_node/parameter_descriptions /slam_planner_node/parameter_updates /slamware_ros_sdk_server_node/add_line /slamware_ros_sdk_server_node/add_lines /slamware_ros_sdk_server_node/basic_sensors_info /slamware_ros_sdk_server_node/basic_sensors_values /slamware_ros_sdk_server_node/cancel_action /slamware_ros_sdk_server_node/clear_lines /slamware_ros_sdk_server_node/clear_map /slamware_ros_sdk_server_node/global_plan_path /slamware_ros_sdk_server_node/go_home /slamware_ros_sdk_server_node/map_metadata /slamware_ros_sdk_server_node/move_by_direction /slamware_ros_sdk_server_node/move_by_theta /slamware_ros_sdk_server_node/move_line /slamware_ros_sdk_server_node/move_lines /slamware_ros_sdk_server_node/move_to /slamware_ros_sdk_server_node/move_to_locations /slamware_ros_sdk_server_node/recover_localization /slamware_ros_sdk_server_node/remove_line /slamware_ros_sdk_server_node/robot_basic_state /slamware_ros_sdk_server_node/robot_device_info /slamware_ros_sdk_server_node/rotate /slamware_ros_sdk_server_node/rotate_to /slamware_ros_sdk_server_node/set_map_localization /slamware_ros_sdk_server_node/set_map_update /slamware_ros_sdk_server_node/set_pose /slamware_ros_sdk_server_node/sync_map /slamware_ros_sdk_server_node/virtual_tracks /slamware_ros_sdk_server_node/virtual_walls /tf /tf_static /ukd_triple/pose /ukd_triple/state /ukd_triple_2_goal/path_tag_line /ukd_triple_2_goal/path_tag_window

Question 1: all the topics that are shown here are correct? Nothing is missing, right? Because I need to make sure that if any topics are missing, I should install the related packages (How can I do that?)

Question 2: When I run rostopic echo \cmd_odom (or /cmd_odom or /cmd_vel or /cmd_vel_2 or /joint_states or some other topics), the terminal does not show anything to me. I don't how I can see or access these values. Why is this happening?

Question 3: When the robot is turned on and it is walking with a joystick, I run rostopic echo \odom I see this:

1

Why does the value of twist is 0 when the robot is walking or rotating 90 or 180 degrees? These should change, right? If yes, how I can fix this?