Skip to content

wmh02240/Ros2Go2Estimator

 
 

Repository files navigation

Ros2Go2Estimator 🦾

License

  • 一种高精度里程计解决方案,
  • 基于纯运动学的双足/四足机器人位置估计算法,目前仅使用IMU、足压力传感器、关节角度和角速度,不依赖相机或Lidar,但可将信号融合进去,进一步提高估计精度;
  • sport_control包读取joystick输入和其他指令,使用unitree_sdk2提供的接口控制机器狗;
  • fusion_estimator包发布对应“base_link”的话题SMX/Odom和对应“base_link_2D”的话题SMX/Odom_2D;
  • dds_rostopic包将dds的lidar、230.1.1.1:1720的相机数据发布为ros2话题;
  • message_handle包完成SMX/Odom和SMX/Odom_2D的tf,此外,将frame“utlidar_lidar”的pointcloud2转换为“base_link_2D”话题/SMX/Scan;
  • 使用SLAM Toolbox建图时放开sport_control/launch/sport_control_launch.py的启动项ros2 run slam_toolbox async_slam_toolbox_node ......;
  • 使用Nav2导航时放开sport_control/launch/sport_control_launch.py的启动项ros2 launch nav2_bringup bringup_launch.py ......;

📚 补充说明

  • 切换两足、四足无需在估计器内做模式切换
  • 目前没有调整参数做补偿,工程使用时可进一步提升精度
  • SLAM Toolbox目前是纯里程计建图,请擅长SLAM的同志自行把地图匹配加进去
  • Nav2同样请自行调整,加载的地图记得改成自己的
  • 可安装voice_chat进行deepseek的语音交流https://github.com/ShineMinxing/Ros2Chat
  • 也适用于foxy系统,把apt install的软件改为-foxy-即可

🎥 视频演示

最新进展(点击图片进入视频)

纯里程计站立/四足切换建图效果 主演示视频

实验记录

  1. 站立行走误差1%,四足行走误差0.5% 实验1

  2. 爬楼梯高度误差小于5cm 实验2

  3. 长距离测试,受磁场变化影响,380米运动偏差3.3% 实验3

  4. 语音控制机器狗,实现意图猜测和在预建地图导航。比如说“没有纸张了”,自动执行导航‘去仓库’ 实验4

  5. 机器狗与吊舱的协同光点/人脸跟踪 实验5

⚙️ 安装指南

  • Use Ubuntu 22.04, ROS2 Humble
sudo apt install ros-humble-joy ros-humble-nav2-msgs ros-humble-slam-toolbox ros-humble-nav2-bringup python3-pip libopencv-dev ros-humble-cv-bridge
mkdir -p ~/ros2_ws/LeggedRobot/src && cd ~/ros2_ws/LeggedRobot/src
git clone --recursive https://github.com/ShineMinxing/Ros2Go2Estimator.git
cd ..
colcon build
ros2 launch sport_control sport_control_launch.py
  • 记得在src/sport_control/launch/sport_control_launch.py中,修改机器狗的网口名,我个人的是“br0”。
  • 同时按下手柄的LT、RT,解锁/锁定手柄;按住RT+左摇杆进行移动;按住RT+右摇杆进行旋转;更多操作请看sport_control_node.cpp。

📄 相关文档

📧 联系我们

博士团队: 401435318@qq.com  
研究所: 中国科学院光电技术研究所

📌 注意:当前为开发预览版,完整文档正在编写中 ``

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.7%
  • Other 1.3%