odroid xu4安装ROS melodic+远程登录+Roboware 开发
自己手里有一块odroid xu4开发板,最近想做一个SLAM小车,开发过程中遇到了一些问题,查找资料的过程中发现大部分都是树莓派的资料,虽说都是ARM架框,但具体问题的解决方法还是不太一样,为方便日后查看,把开发过程简单做个记录,也希望能够帮助有同样问题的小伙伴。
一、odroid xu4安装ROS melodic
ROS安装按照官网的步骤即可,只是在sudo rosdep init和rosdep update两步会报错
- 解决方法:
上面两个指令的作用就是访问raw.githubusercontent.com,下载文件20-default.list,并且访问文件中的网址下载相关文件,因此,解决方法就是手动下载所需文件,并复制到/etc/ros/rosdep/目录中。
文件下载地址:
https://github.com/Vision4UAV/rosdistro/tree/master/rosdep
上述方法参考了rosdep init 错误的终极解决方法,其中说明了sudo rosdep init和rosdep update出错的原因以及另外一种解决方法。
二、远程登录odroid xu4
使用SSH远程登录,首先需要设置odroid xu4自动登录,否则要给xu4插上键盘和屏幕,不方便开发和调试;为了防止每次登录IP地址发生改变,最好配置固定IP。
1、odroid xu4自动登录
odroid xu4安装ubuntu mate 18.04后,设置自动登录的方法和树莓派有所不同,需要修改的文件是/usr/share/lightdm/lightdm.conf.d/50-slick-greeter.conf
打开文件:
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-slick-greeter.conf
如果没有gedit编辑器,先安装
sudo apt install gedit
或者用vim打开
sudo vim /usr/share/lightdm/lightdm.conf.d/50-slick-greeter.conf
在最后添加自动登录命令:
autologin-user=your username
保存退出,重启:
reboot
开机后不会出现输入密码的界面,直接进入桌面,完成。
2、odroid xu4配置固定IP
- 将odroid xu4连接无线网,查看IP地址:
ifconfig -a
IP地址为:192.168.31.34
Netmask:255.255.255.0
Gateway:192.168.31.255
-
配置固定IP:
- 点击右上角WIFI图标–>选择"Edit Connections…":
-
选择当前连接的WIFI网络–>点击下方的设置按钮:
-
选择"IPv4 Settings"–>“Method"选择"Manual”–>“Add”–>根据上面查看的IP地址,填入"Address、Netmask、Gateway"–>“Save”
-
重启
reboot
3、SSH远程连接ROS主控(Odroid XU4)
将PC机和Odroid XU4连接到同一个局域网,通过odroid xu4的IP地址或主机名远程登录
- IP地址登录:
ssh odroid@192.168.31.34
其中,odroid为odroid xu4的用户名
- 计算机名登录:
ssh odroid@odroid
其中,第一个odroid是用户名,第二个odroid是ubuntu系统的主机名。
然后输入密码即可成功登录odroid xu4。
注:输入exit即可切换回PC机
-
为了便避免每次登录都需要输入密码,而且为了后续开发,需要配置免密码登录
- 生成密钥,注意这里要在PC端执行:
ssh-keygen
按回车键在默认目录下生成密钥文件
- 把公钥复制到odroid xu4中:
ssh-copy-id -i .ssh/id_rsa.pub odroid@odroid
- 如果发生sign_and_send_pubkey:signing failed:agentrefused operation错误,在PC端执行:
ssh-add
之后,就可以直接登录,无需输入密码
三、Roboware远程开发
RoboWare Studio是一个ROS集成开发环境,它使得 ROS的开发更加直观、简单、并且易于操作。可进行ROS工作区及包的管理、代码编辑、构建及调试。Roboware Studio的安装这里不做介绍,网上教程很多。
1、用Roboware Studio在PC上创建ROS工程
这里以思岚激光雷达为例说明整个创建、编译、运行过程。
选择用户目录,Roboware创建工作空间:
菜单栏选择 “Designer”->“Open Designer”,打开图形化配置界面:
可以看到,左侧工程目录中已经自动加入了两个新的目录launch_pkg和rplidar_ros
编译工程:
修改.bashrc文件:
打开.bashrc文件 gedit ~/.bashrc
在最后添加 source ~/slam_robot/devel/setup.bash
执行 source ~/.bashrc ,使修改生效
运行:
执行 ll /dev/tty* ,查看是否插入rplidar a2激光雷达
修改串口权限:sudo chmod 777 /dev/ttyUSB0
启动激光雷达:roslaunch rplidar_ros view_rplidar.launch
2、Roboware远程传输工程到ROS主控
-
配置Roboware:
-
传输工程到远程ROS主控:
注:传输过程中可能会出现2个错误
-
错误1:bash: rsync: command not found
-
解决方法:安装rsync
sudo apt install rsync
-
错误2:/tmp/roswstmp.sh: line 2: catkin_init_workspace: command not found
-
解决方法:配置所有用户的环境变量
sudo su
echo “source /opt/ros/melodic/setup.bash” >>/etc/profile
3、远程编译和远程执行
-
远程编译:
-
远程执行:
- 修改odroid xu4的.bashrc文件:
vim ~/.bashrc
在最后加入:source ~/slam_robot/devel/setup.bash
执行:source ~/.bashrc,使修改生效- 执行:
roslaunch rplidar_ros rplidar.launch
激光雷达启动成功。
4、.bashrc多机master连接配置
- 修改PC机.bashrc文件:
在.bashrc文件中,添加以下内容:
export ROS_MASTER_URI=http://192.168.31.34:11311
export ROS_HOSTNAME=meng-INVALID
export ROS_IP=192.168.31.79
执行source ~/.bashrc使修改生效
注:ROS_MASTER_URI是odroid xu4(主机)的IP地址,11311是固定的;ROS_HOSTNAME是本机的主机名;ROS_IP是本机的IP地址,ROS_HOSTNAME(从机)和ROS_IP(从机)写一个就可以。
- 修改odroid xu4的.bashrc文件:
export ROS_MASTER_URI=http://192.168.31.34:11311
export ROS_HOSTNAME=odroid
执行:source ~/.bashrc 使修改生效
- odroid xu4(主机)启动ROS:
roslaunch rplidar_ros rplidar.launch
- 本地PC(从机)的rviz查看主机的话题:
rviz
参考内容
[1]rosdep init 错误的终极解决方法
[2]Ubuntu Mate 自动登录
[3]树莓派UbuntuMate设置固定IP
[4]树莓派3设置固定IP地址的方法(亲测有效)
[5]bash: rsync: command not found报错原因以及解决办法
[6]Roboware远程传输编译时找不到命令catkin_init_workspace: command not found解决