MATLAB与ROS开始(2)

1、前记:在阅读了MATLAB 控制baxter机器人相关信息(个人记录--学习用)的部分内容之后,尝试了通过MATLAB控制ROS中的Baxter机器人。

2、开始

  1)ROS端:不像MATLAB与ROS开始(1)中那样,ROS端的主要步骤还是打开gazebo进入baxter仿真环境运行简单例子中最后的总结。

          (1)初始化,在终端下设置环境变量为0输入:export SVGA_VGPU10=0  

          (2)继续,进入工作空间:cd ros_ws

                        链接仿真环境:  ./baxter.sh sim

                       开启gazebo:  roslaunch baxter_gazebo baxter_world.launch  

          (3)打开仿真器后,重新打开一个终端键入代码:

                                   进入工作空间:cd ros_ws

                                  链接仿真环境:  ./baxter.sh sim     这里使能在MATLAB中执行。

   2)MATLAB端:机器人使能和简单运动演示   

             (1)准备工作:下载:Baxter Communicator Class

                                         地址:https://jp.mathworks.com/matlabcentral/fileexchange/63564-baxter-communicator-class

                                       下载:Robotics System Toolbox Interface for ROS Custom Messages 

                                 地址:https://www.mathworks.com/matlabcentral/fileexchange/49810-robotics-system-toolbox-interface-for-ros-custom-messages 或者直接在Addon(附加功能中添加)

           安装到确定的目录下,添加到MATLAB的路径下;然后在虚拟机中操作如下,

MATLAB与ROS开始(2)_第1张图片    MATLAB与ROS开始(2)_第2张图片

          (2)matlab_gen文件产生的前提是安装了Robotics System Toolbox Interface for ROS Custom Messages 后在

MATLAB命令行输入:rosgenmsg(‘baxter_common’)  出现如下内容,等待直到出现右图

MATLAB与ROS开始(2)_第3张图片MATLAB与ROS开始(2)_第4张图片

如下:在前加上
MATLAB与ROS开始(2)_第5张图片

然后按照MATLAB的指示:addpath('C:\Users\hasee\Documents\MATLAB\baxter_common\matlab_gen\msggen')

重启MATLAB。

       (3)重启后就会在baxter_common目录下找到matlab_gen文件。

       (4)运行:rosinit('192.168.244.129'),再运行BaxterCommWithSim.m,出现如下

MATLAB与ROS开始(2)_第6张图片

然后代码:

%% close last rosmastre
rosshutdown
%% connect ros
rosinit('192.168.244.129')
%% To connect to simulation:
bc = BaxterCommWithSim(true);  % for simulation
%% Turn on Servos
enable(bc);
%% Start timer to periodically update the joint commands
%baxterStartTimerForRobot;
 baxterStartTimerForSim;
 %% Untuck both arms
untuck(bc, 3);
%% Turn off servos
disable(bc);
%% Stop and delete timer started in baxterStartTime
stop(timer1);
delete(timer1);

%% Shutdown ROS
rosshutdown;

按小结运行!!!方便查看每一节的结果在MATLAB中或ROS下。如下机器人使能

MATLAB与ROS开始(2)_第7张图片

如下机器人运动:

MATLAB与ROS开始(2)_第8张图片

总结:以上为瞎折腾一周的初步结果,但迈出了MATLAB控制ROS端Baxter机器人的第一步,道路且远且长!!!

                                                                                                               致:不知所为何事的傻子

                                                                                                                         2018年10月24日

你可能感兴趣的:(MATLAB与ROS中的机器人)