前期準備
系統:Ubuntu 16.04 LTS
軟件版本:ROS Kinetic、MATLAB 2018a linux版
查看本機IP
首先打開終端輸入
ifconfig
可以查看
MATLAB與ROS建立通訊連接
在HOME文件夾下通過 ctrl+H 可以查看隱藏文件,找到 .bashrc文件
打開 .bashrc文件,並在文件末端添加你的IP,然後保存退出。
例如
export ROS_IP=192.169.0.9
現在在終端種運行roscore可以看到
然後打開你的matlab。
在命令行窗口輸入
setenv(‘ROS_MASTER_URI’,‘http://192.168.0.9:11311’)
建立連接
然後繼續輸入rosinit,測試是否可以與Master主節點建立通訊,若通訊成功可以看到:
爲了方便測試,仿真使用ROS自帶的turtlesim
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
現在正常應該通過鍵盤的方向鍵控制小烏龜運動
現在可以查看當前的topic
使用 rostopic list查看
然後可以建立simulink模型
使用Robotics System Toolbox工具箱中的ROS工具包。其中的Subscribe模塊可以接收當前的運行中的topic信息。
通過搭建模型查看當前topic中的信息
再次使用鍵盤控制小烏龜運動,數據就會被scope記錄下來
simulink自動生成ROS代碼
首先查看cmd_vel的數據類型
rostopic info /turtle1/cmd_vel
進一步查看msg的類型
rosmsg show geometry_msgs/Twist
使用ROS工具包中的Blank Message模塊接收數據
使用ROS工具包中的Publish模塊發送信息
想要控制小烏龜做圓環運動只需要發送X線速度和Z角速度
然後運行就可以看到小烏龜做圓周運動
代碼生成需要對simulink進行一些設置
在Simulink的Model Configuration Parameters—Hardware Implementation中選中Robot Operating System後點擊確定,同時還要注意求解器一定要選離散型。
再點擊代碼生成按鈕,即可生成相應的C++代碼。
顯示這裏說明代碼生成成功
文件目錄下會出現編譯好的文件
然後在這個目錄下進行編譯
./build_ros_model.sh rostest2.tgz ~/catkin_ws/
顯示編譯成功
在catkin_ws下catkin_make編譯一下就可以使用了.就可以看到小烏龜和剛纔仿真的那樣開始做相同的圓周運動了。
rosrun rostest2 rostest2_node
純屬自己的學習記錄,歡迎各位大佬指正交流!
教學視頻:https://download.csdn.net/download/weixin_42313598/12269508
demo代碼:https://download.csdn.net/download/weixin_42313598/12269433