Dashgo底盘入门教程-环境-ROS基础环境的配置
Dashgo底盘入门教程-环境-ROS基础环境的配置
说明:
- 介绍如何配置ROS环境变量,工作空间构建,时间同步等
创建ROS用户
- 我们创建一个eaibot的用户,用于ROS操作。
sudo useradd -s /bin/bash -m eaibot
passwd eaibot
- 为该用户添加sudoer权限,并在执行sudo操作免密码输入的繁琐。
- 方法为在/etc/sudoer文件中添加下面一行,注意以root用户权限使用vim编辑,保存修改的文件使用“wq!”强制保存。
eaibot ALL=(ALL) NOPASSWD:ALL
时间同步
- 设置时区
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 手工操作
sudo apt-get install ntpdate
sudo ntpdate pool.ntp.org
- 如果报如下错误:
24 Jun 16:50:14 ntpdate[3495]: the NTP socket is in use, exiting
- 需要先停掉ntp再同步
sudo service ntp stop
sudo ntpdate pool.ntp.org
添加串口访问权限
- arduino或激光雷达等外部设备一般使用串口和ROS通讯,所以需要用户拥有串口的读写权限。
- 大部分的串口都属于dialout用户组。所以把eaibot用户加入dialout组就拥有串口访问权限。
- 命令如下:
sudo usermod -a -G dialout eaibot
- 重启机器使其生效。
设置ROS环境变量
- 我们把下面内容同时添加在~/.bashrc和 ~/.profile下面
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
小知识 ~/.bashrc和 ~/.profile区别
要区分 ~/.bashrc和 ~/.profile的用途,首先区分下“login shell”和“no-login shell”。
login shell:
代表用户登入, 比如使用 “su -“ 命令, 或者用 ssh 连接到某一个服务器上, 都会使用该用户默认 shell 启动 login shell 模式.
no-login shell:
而 no-login shell 的情况是我们在终端下直接输入 bash 或者 bash -c “CMD” 来启动的 shell.
在 login shell模式下的 shell 会去自动执行 /etc/profile 和 ~/.profile 文件, 但不会执行任何的 bashrc 文件的脚本。
在no-login shell 该模式下是不会自动去运行任何的 profile 文件,只会执行/etc/bash.bashrc和~/.bashrc
创建ROS工作空间
- 创建一个属于自己的ROS工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_init_workspace
catkin_make
- 创建ROS包
cd ~/catkin_ws/src
catkin_create_pkg test std_msgs rospy roscpp
catkin_make --pkg test
source ~/.bashrc
- 如果一个项目包含多个ROS包,创建方法如下:
cd ~/catkin_ws/src
mkdir projectxx
cd projectxx
catkin_create_pkg subproj1 std_msgs rospy roscpp
catkin_create_pkg subproj2 std_msgs rospy roscpp
catkin_create_pkg subproj3 std_msgs rospy roscpp
...
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号