目录
ROS学习笔记(二)–V-REP仿真环境下的Roban机器人
一.导入Roban机器人
下载资源包
- 在git上获取相关的资源包
cd 切换到资源包克隆到的本地目录
git clone https://github.com/LejuRobotics
- 创建一个新的工作空间,并将资源包放入src文件
mkdir -p ~/rosV-REP/src
cd ~/rosV-REP/
- 编译
catkin_make
开启V-REP导入Roban机器人
- 首先要启用ros
roscore
- 打开仿真软件
官方:./V-REP.sh
自配:
cd CoppeliaSim_Edu
./coppeliaSim.sh
3.打开场景文件(找到文件直接拖到软件上即可)
官方: */bodyhub/V-REP/Roban.ttt
自配:
/home/robot_ros_application/catkin_ws/src/bodyhub/vrep/Roban.ttt
二.BodyHub启动(暂滞)
简要说明
- BodyHub是一个节点,要占用才能控制运动、传感器等。
- 上位机其他节点与下位机通信的中间节点(枢纽)
- 机器人的所有控制指令和数据获取都要通过BodyHub
- 是状态机,节点服务是独占的,同一时刻只能响应一个上层节点的请求
启动
- 运行BodeHub节点:新建终端,在工作区中source
官方:
cd ~/rosV-REP/
source devel/setup.bash
自配:
robot_ros_application/catkin_ws
source ~/robot_ros_application/catkin_ws/devel/setup.zsh
- 在该终端下执行命令以仿真模式启动节点
官方:
roslaunch bodyhub bodyhub.launch sim:=true
自配:可以先执行官方的命令,如果出错再执行下述命令
设置root权限
sudo su
按提示输入密码,再source(注意此时的终端为bash)
source devel/setup.bash
再运行roslaunch命令
roslaunch bodyhub bodyhub.launch sim:=true
可以看到仿真环境中机器人放下双臂为初始下蹲模式
- [坑]如果机器人倒下去或掉下去就是仿真环境的物理引擎没有选对,要用newton
占用BodyHub节点
- 发出请求
rosservice call /MediumSize/BodyHub/StateJump "masterID: 6
stateReq: setStatust'"
会返回statesRes:22
- 释放节点
rosservice call /MediumSize/BodyHub/StateJump "masterID: 6
stateReq: reset'"
返回21
三.VSCode控制Roban完成初始内置动作脚本
打开工作区
打开vscode,打开文件夹/home/robot_ros_application/catkin_ws
运行脚本
- 打开终端,source
source ~/robot_ros_application/catkin_ws/devel/setup.zsh
2.可选择catkin_ws/ros_actions_node/scripts/lejufunc/文件名.py运行
rosrun ros_actions_node client_walk.py
可以看到roban走起路了
- [坑]
如果运行.py时报错 not executable,可以打开该文件所在位置-选择相印文件属性properties-permission,勾选allow executing file as program - [坑]
如果source后仍找不到ros_node_actions包,则可以尝试重新编译文件
删除catkin_ws的build、devel
在catkin_ws目录下执行命令catkin_make
进行编译