ubuntu_ros+solidworks+ubuntu_raspberryPi3+arduino_mega机器人仿真&实际系统搭建

前阵子借着比赛搭了一整套机器人系统,系统全开源环境,搭配如下
ubuntu_ros+solidworks+ubuntu_raspberryPi3+arduino_mega

ubuntu_ros

基本框架在ROS上完成,raspberryPi3和arduino兼容,可以利用开源框架自己编写整体的系统程序。
具体块程序在GITHUB上

solidworks

主要是利用soliworks的插件导出URDF模型文件给ROS的rviz用,具体的导出教程参考https://www.cnblogs.com/21207-iHome/p/7821269.html
根据上面的方法就可以导出来,导出来的主要问题就是建立的坐标变换的关系,要设定参考轴和参考坐标系,这和设计的机械结构有一点关系,有时候设计有问题导出来的模型坐标关系需要修改。如何正确设定参考轴和坐标系看上面的网址。

ubuntu_raspberryPi3

在前期开源台上利用远程控制方式,用电脑SSH方式远程控制raspberryPi3,SSH远程通信需要设置WIFI路由配置,安装SSH这里就不说了,google一下就有命令安装
两台都要配置

SSH通信需要配置文件
1.首先保证IP地址恒定,设置静态IP
sudo vim /etc/network/interfaces
#在文件末尾加上
auto wlp9s0 #ifconfig查看WLAN名称,UBUNTU16后变成这样了,以前的不会这么奇怪
iface wlp9s0 inet static #静态
address 192.168.1.114 #IP值
netmask 255.255.255.0 
gateway 192.168.1.1
dns-nameservers 121.14.136.214 #DNS服务器地址可改,按需

然后ssh调试一下

ssh ubuntu@pi

ubuntu是远程raspberryPi3的用户名,pi是IP地址,我在

sudo vim /etc/hosts

里面设置了ip地址变量替换
能登录调通后设置

sudo vim ~/.barshrc
#在文件末端加入设置的主从机设置
export ROS_HOSTNAME=ly
#export ROS_HOSTNAME=lylab
#export ROS_MASTER_URI='http://pi:11311'
export ROS_MASTER_URI='http://ly:11311'
#这是电脑端的,电脑端是从机
export ROS_HOSTNAME=pi
export ROS_MASTER_URI='http://pi:11311'
#这是pi端的,pi端是主机

pi端roscore后能在电脑端rosrun个东西就说明成功

arduino_mega

前期为了方便是直接电泳rosserial_python包,把arduino当成一个ros节点来使用,这样的好处上根据arduino基础和ros基础就能快速写出一个能用的机器人真实系统(贼快)https://blog.csdn.net/qq_27806947/article/category/8105351
缺点就是它把arduino当成了一个节点,这个节点需要不断的扫和pi通信的缓存看有没有话题消息发下来,相当的占内存,可以所示真的就把它当成节点了,没有其他自主功能。

后期可以考虑用通信的方式发送驱动命令,这样优势是快,占内存比上面的方法少一点。具体可以参考(还没有去实现,控制的东西数量和传感器不一样)https://blog.csdn.net/jialing678/article/details/85921834

机器人系统的代码上GITHUB
实际调用命令

前提是把文件写入arduino和pi里面
1.pi端
roscore#终端1
rosrun rosserial_python serial_node.py /dev/ttyACM0 #终端2
#串口号根据自己的改 
2.电脑端
rosrun needle turtlebot_teleop_key #终端1
rosrun needle turtlebot_teleop_key1 #终端2
roslaunch needle display.launch #终端3
#实现表现:仿真和实际可以同时运动

你可能感兴趣的:(Ubuntu_ROS笔记)