最新消息:

Dashgo底盘入门教程-环境-ROS基础环境的配置

ROBOTS/其他机器人 少儿编程 1257浏览 0评论
Dashgo底盘入门教程

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
...

您必须 登录 才能发表评论!