turtlebot源码(turtle robot)
本文目录一览:
turtlebot源码安装和daben安装的区别
1,安装依赖
sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator
ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs
2,turtlebot软件包源安装(同样的在主机PC上也执行这些)
准备
sudo apt-get install python-rosdep python-wstool ros-indigo-ros
sudo rosdep init
rosdep update
正式安装
可以在home目录下先建立一个文件夹在进入这个文件夹执行以下操作
mkdir ~/rocon
cd ~/rocon
wstool init -j5 src
source /opt/ros/indigo/setup.bash
rosdep install --from-paths src -i -y
catkin_make
mkdir ~/kobuki
cd ~/kobuki
wstool init src -j5
source ~/rocon/devel/setup.bash
rosdep install --from-paths src -i -y
catkin_make
mkdir ~/turtlebot
cd ~/turtlebot
wstool init src -j5
source ~/kobuki/devel/setup.bash
rosdep install --from-paths src -i -y
catkin_make
如果你已经新建了文件夹 source的时候记得更改目录 否则会出错
3,把setup.bash source到终端启动文件里
# For a deb installation
echo "source /opt/ros/indigo/setup.bash" ~/.bashrc
# For a source installation
echo "source ~/turtlebot/devel/setup.bash" ~/.bashrc
配置turtlebot与主机PC的通信
1,使用ifconfig查看自己的ip
2,安装ssh在turtlebot还有pc上
sudo apt-get install openssh-server
像下面这样从pc远程进入turtlebot的电脑
ssh turtle@TURTLEBOTP_IP
3,开始配置turtlebot的网络
echo export ROS_MASTER_URI= ~/.bashrc
echo export ROS_HOSTNAME=IP_OF_TURTLEBOT ~/.bashrc
echo export ROS_MASTER_URI= ~/turtlebot/devel/setup.sh
echo export ROS_HOSTNAME=IP_OF_TURTLEBOT ~/turtlebot/devel/setup.sh
配置完成 重启
IP_OF_TURTLEBOT 是turtlebot的ip地址
配置电脑的网络
echo export ROS_MASTER_URI= ~/.bashrc
echo export ROS_HOSTNAME=IP_OF_PC ~/.bashrc
4,测试是否配置成功
rostopic list
没有出现东西就是错的 (当然要首先打开roscore)
如何安装ros的turtlebot
安装turtlebot的package以运行现成的代码。
原先hydro版本的ROS下turtlebot包只有一个turtlebot文件夹,这也是一个独立的工作空间,但是在indigo版本下的turtlebot包是三个组合工作空间分别是rocon、kobuki、turtlebot,这是三个并列同级的文件夹,这里涉及到工作空间的覆盖(overlay)问题。
如下步骤是从源码安装
1、安装前的准备
$ sudo apt-get install python-rosdep python-wstool ros-indigo-ros
$ sudo rosdep init
$ rosdep update123
2、安装rocon、kobuki、turtlebot
这三个是组合空间的关系,必须按照顺序安装
$ mkdir ~/rocon
$ cd ~/rocon
$ wstool init -j5 src
$ source /opt/ros/indigo/setup.bash
$ rosdep install --from-paths src -i -y
$ catkin_make
$ mkdir ~/kobuki
$ cd ~/kobuki
$ wstool init src -j5
$ source ~/rocon/devel/setup.bash
$ rosdep install --from-paths src -i -y
$ catkin_make
$ mkdir ~/turtlebot
$ cd ~/turtlebot
$ wstool init src -j5
$ source ~/kobuki/devel/setup.bash
$ rosdep install --from-paths src -i -y
$ catkin_make1234567891011121314151617181920
从上面的安装顺序以及依次source的setup.bash文件可以看出他们三个工作空间的层级关系。
3、环境设置
【kobuki平台】
# 设置udev规则使得电脑自动识别kobuki串口,无需每次用chmod赋权限$ . ~/turtlebot/devel/setup.bash $ rosrun kobuki_ftdi create_udev_rules# 如果你使用Kinect作为3D传感器就设置一下TURTLEBOT_3D_SENSOR$ echo "export TURTLEBOT_3D_SENSOR=kinect" ~/turtlebot/devel/setup.sh$ source ~/turtlebot/devel/setup.bash#将Turtlebot空间设置为默认空间,以后可以不用每次运行source命令$ echo "source ~/turtlebot/devel/setup.bash" ~/.bashrc12345678910
接下来说一下电池变量
# 运行turtlebot_dashboard查看Turtlebot运行状态$ roslaunch turtlebot_bringup minimal.launch$ roslaunch turtlebot_dashboard turtlebot_dashboard.launch# 如果看到上面面板上的笔记本电池能够显示电量就不用专门设置下面的电池环境变量了,如果无法正常显示电量的话需要设置以下变量$ echo "export TURTLEBOT_BATTERY=/proc/acpi/battery/BAT1" ~/turtlebot/devel/setup.sh$ source ~/turtlebot/devel/setup.bash123456
如果显示找不到/proc/acpi/battery/BAT1 说明电池文件不在这个位置
Linux内核版本= kernel 2.6的系统电池文件位置应该在/proc/acpi/battery/ 名字有可能是BAT0 或者BAT1
Linux内核版本是kernels 3.0+的系统,电池文件在/sys/class/power_supply/ 文件夹下,名字有可能是BAT0 或者BAT1 所以 TURTLEBOT_BATTERY=/sys/class/power_supply/BAT0 或者TURTLEBOT_BATTERY=/sys/class/power_supply/BAT1
最简单办法是在系统/ 目录下搜索BAT0 或者BAT1 文件,从而确认TURTLEBOT_BATTERY 的值
【create平台】
修改~/.bashrc文件,这样每次启动都将自动设置这些环境变量,否则每次都要用export命令逐个添加这些环境变量。
先打开.bashrc文件:
$ gedit ~/.bashrc1
再在文件末尾添加如下语句:
(我的移动机器人平台是turtlebot一代:IRobot Create+Kinect)
# For a source installationsource ~/turtlebot/devel/setup.bash# Export the turtlebot variablesexport TURTLEBOT_BASE=createexport TURTLEBOT_STACKS=circlesexport TURTLEBOT_3D_SENSOR=kinectexport TURTLEBOT_SERIAL_PORT=/dev/ttyUSB012345678
到这里就安装完成了。
可以以最小模式运行turtlebot机器人测试一下是否安装成功,如果环境变量配置正确,下面命令中的单词输入一部分之后按下Tab键是可以自动补全该单词的。
$ roslaunch turtlebot_bringup minimal.launch
为什么.bashrc中export ros
[html] view plain copy
source /opt/ros/indigo/setup.bash
###### kobuki_slam
source /opt/ros/indigo/setup.bash
source /home/yhzhao/catkin_ws/devel/setup.bash
source /home/yhzhao/hl_ws/devel/setup.bash
#export ROS_PACKAGE_PATH=~/catkin_ws/src:$ROS_PACKAGE_PATH
export ROS_PACKAGE_PATH=~/catkin_ws/src:~/hl_ws/src:$ROS_PACKAGE_PATH
export ROS_WORKSPACE=~/hl_ws/src
alias sbpi='ssh bananapi@192.168.1.102'
alias bpi_ros='export ROS_MASTER_URI= export ROS_HOSTNAME=192.168.1.123'
alias cdros='cd ~/catkin_ws/src'
declare -x TURTLEBOT_GAZEBO_MAP_FILE="/opt/ros/indigo/share/turtlebot_gazebo/maps/corridor.yaml"
declare -x TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/indigo/share/turtlebot_gazebo/worlds/corridor.world"
export TURTLEBOT_BASE=kobuki
export TURTLEBOT_STACKS=nostack
export TURTLEBOT_3D_SENSOR=rplidar
###### slam_ws
source /opt/ros/indigo/setup.bash
source /home/yhzhao/slam_ws/devel/setup.bash
export ROS_PACKAGE_PATH=~/slam_ws/src:$ROS_PACKAGE_PATH
export ROS_WORKSPACE=~/slam_ws/src
#export ROS_HOSTNAME=192.168.1.111
#export ROS_IP=192.168.1.111
###### rgbd_slam
#source /opt/ros/indigo/setup.bash
#source /home/yhzhao/rgbdslam_ws/devel/setup.bash
#source /home/yhzhao/rgbdslam_ws/devel/setup.bash
#export ROS_PACKAGE_PATH=~/rgbdslam_ws/src:$ROS_PA#CKAGE_PATH
#export ROS_WORKSPACE=~/rgbdslam_ws/src
###### rtab_ws
#source /opt/ros/indigo/setup.bash
#source /home/yhzhao/slam_open_sources/ros_ws/devel/setup.bash
#export ROS_PACKAGE_PATH=/home/yhzhao/slam_open_sources/ros_ws/src:$ROS_PACKAGE_PATH
#export ROS_WORKSPACE=/home/yhzhao/slam_open_sources/ros_ws/src
#source ~/rosbuild_ws/setup.bash
在bashrc中进行上面设置的原因,主要是在每次启动终端时,加载ros的配置变量,不然基本的ros指令就无法识别,也找不到对应包..
source 可以认为它是读取每一个环境变量设置. 支持覆盖重载..
ros一般在apt-get 安装下是装在/opt/ros/indigo/ 下面的, 可以认为它只安装了头文件和基本库的 release版本, 如果我们需要下载对应的源码, 最好在home文件夹下,创建
自己的工作空间, 再编译. 按照source 的次序支持包覆盖.
ROS_PACKAGE_PATH ros包查找的路径.
ROS_WORKSPACE 工作路径 . roscd 对应的位置.