注意:该示例要求已经安装好了ros和ocs2环境,并经过了测试。
参考示例
https://github.com/qiayuanl/legged_control
在运行前在bashrc中添加代码:
export ROBOT_TYPE=a1
安装完成后启动以下界面:
roscore
roslaunch legged_unitree_description empty_world.launch
roslaunch legged_controllers load_controller.launch cheater:=false
rqt
注意此时不要调整任何数据。
在rqt中插入各种组件,rviz和vel控制,controller manager等插件。
首先在controller manager 中激活legged controller,随后激活joint state controller。注意顺序不能改。
配置好后可以在
roslaunch legged_controllers load_controller.launch cheater:=false
启动的界面输入list查看运动方式,输入dynamic_walk
随后在rqt的界面可以开始控制。
第一种方法是使用cmd vel滑块控制
第二种需要将cmd vel清零,随后使用rviz中的2D nav goal设定目标点。建议先设置一个机器人附近的点,让狗站起来再设定其他的导航点。
完成。
同理运行go1,将代码修改为export ROBOT_TYPE=go1
tip:在控制器和步态设定完毕后,输入一个较小的cmd vel就可以让狗站立
完成。
顺便记录一下当前运行的bashrc环境:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
# __conda_setup="$('/home/blamlight/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
# if [ $? -eq 0 ]; then
# eval "$__conda_setup"
# else
# if [ -f "/home/blamlight/anaconda3/etc/profile.d/conda.sh" ]; then
# . "/home/blamlight/anaconda3/etc/profile.d/conda.sh"
# else
# export PATH="/home/blamlight/anaconda3/bin:$PATH"
# fi
# fi
# unset __conda_setup
# <<< conda initialize <<<
# >>> cuda initialize >>>
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
# <<< cuda initialize <<<
# >>> isaacgym initialize >>>
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/blamlight/anaconda3/envs/isaacgym/lib
# <<< isaacgym initialize <<<
# >>> mujoco initialize >>>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/blamlight/.mujoco/mujoco-3.0.1/bin
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/blamlight/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
# <<< mujoco initialize <<<
# >>> ocs2 initialize >>>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/ROS1_WS/ocs2_ws/src/raisimLib/raisim/linux/lib
export PYTHONPATH=$PYTHONPATH:~/ROS1_WS/ocs2_ws/src/raisimLib/raisim/linux/lib
export PATH=/opt/openrobots/bin:$PATH
export PKG_CONFIG_PATH=/opt/openrobots/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/opt/openrobots/lib:$LD_LIBRARY_PATH
#export PYTHONPATH=/opt/openrobots/lib/python3.10/site-packages:$PYTHONPATH # Adapt your desired python version here
export CMAKE_PREFIX_PATH=/opt/openrobots:$CMAKE_PREFIX_PATH
# <<< ocs2 initialize <<<
alias src='source ~/.bashrc'
alias initconda='. ~/anaconda3/bin/activate'
alias deconda='conda deactivate'
alias myisaac='. ~/anaconda3/bin/activate && conda activate isaacgym'
alias mymujoco='. ~/anaconda3/bin/activate && conda activate mujoco'
alias myocs2='. ~/anaconda3/bin/activate && conda activate ocs2'
echo "ros noetic(1) or ros2 foxy(2)?"
read edition
if [ "$edition" -eq "2" ];then
source /opt/ros/foxy/setup.bash
source ~/ROS2_WS/catkin_ws/install/setup.bash
echo "source ros foxy"
else
source /opt/ros/noetic/setup.bash
source ~/ROS1_WS/blamlight_ws/devel/setup.bash
source ~/ROS1_WS/unitree_ws/devel/setup.bash
source ~/ROS1_WS/ocs2_ws/devel/setup.bash
source ~/ROS1_WS/go1_ocs2_ws/devel/setup.bash
echo "source ros noetic"
fi
export ROBOT_TYPE=go1
感谢大佬的开源