- 一种高精度里程计解决方案,
- 基于纯运动学的双足/四足机器人位置估计算法,目前仅使用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-即可
- 额外安装https://github.com/ShineMinxing/Ros2ImageProcess.git,调用spot_detector_node/face_check_node进行光点/人脸提取
- 额外安装https://github.com/ShineMinxing/Ros2AmovG1.git,调用g1_control_node进行跟踪控制(无需额外硬件)
- 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。
- 核心算法原理: 技术文档
- 历史项目参考: Aliengo ROS1项目
博士团队: 401435318@qq.com
研究所: 中国科学院光电技术研究所
📌 注意:当前为开发预览版,完整文档正在编写中 ``