ROS基础环境的配置

来源:互联网 发布:淘宝直播安卓版 编辑:程序博客网 时间:2024/05/17 08:38

创建ROS用户

我们创建一个eaibot的用户,用于ROS操作。

sudo useradd  -s /bin/bash -m eaibotpasswd 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 ntpdatesudo ntpdate pool.ntp.org

如果报如下错误:

24 Jun 16:50:14 ntpdate[3495]: the NTP socket is in use, exiting

需要先停掉ntp再同步

sudo service ntp stopsudo 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" >> ~/.bashrcecho "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrcsource ~/.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/srccd ~/catkin_wscatkin_init_workspacecatkin_make

创建ROS包

cd ~/catkin_ws/srccatkin_create_pkg test std_msgs rospy roscppcatkin_make --pkg testsource ~/.bashrc

如果一个项目包含多个ROS包,创建方法如下:

cd ~/catkin_ws/srcmkdir projectxxcd projectxxcatkin_create_pkg subproj1 std_msgs rospy roscppcatkin_create_pkg subproj2 std_msgs rospy roscppcatkin_create_pkg subproj3 std_msgs rospy roscpp...
0 0
原创粉丝点击