OCS2 2. unitree a1/go1 mpc控制

 

 注意:该示例要求已经安装好了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

感谢大佬的开源

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
==9114== HEAP SUMMARY: ==9114== in use at exit: 14,336,980 bytes in 90,048 blocks ==9114== total heap usage: 428,295 allocs, 338,247 frees, 58,358,339 bytes allocated ==9114== ==9114== 0 bytes in 1 blocks are still reachable in loss record 1 of 25,502 ==9114== at 0x4C3289F: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==9114== by 0x66F9EBA: QV4::CompiledData::CompilationUnit::linkToEngine(QV4::ExecutionEngine*) (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5Qml.so.5.12.9) ==9114== by 0x6904054: QQmlObjectCreator::init(QQmlContextData*) (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5Qml.so.5.12.9) ==9114== by 0x6904202: QQmlObjectCreator::QQmlObjectCreator(QQmlContextData*, QQmlRefPointer<QV4::CompiledData::CompilationUnit> const&, QQmlContextData*, QQmlIncubatorPrivate*) (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5Qml.so.5.12.9) ==9114== by 0x688E2E1: QQmlComponentPrivate::beginCreate(QQmlContextData*) (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5Qml.so.5.12.9) ==9114== by 0x688BE48: QQmlComponent::create(QQmlContext*) (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5Qml.so.5.12.9) ==9114== by 0x4E49D6E: QQuickWidget::continueExecute() (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5QuickWidgets.so.5.12.9) ==9114== by 0x4E4A18A: QQuickWidgetPrivate::execute() (in /opt/Qt5.12.9/5.12.9/gcc_64/lib/libQt5QuickWidgets.so.5.12.9) ==9114== by 0x1397D2: TWDZVirtualKeyboard::TWDZVirtualKeyboard() (twdzvirtualkeyboard.cpp:24) ==9114== by 0x13965E: TWDZVirtualKeyboard::GetInstance() (twdzvirtualkeyboard.cpp:8) ==9114== by 0x136629: UartTest::UartTest(int, int, QWidget*) (uarttest.cpp:18) ==9114== by 0x136157: communicationModule::initUi() (communicationmodule.cpp:11)
06-09
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值