TB2的SLAM之旅

注意,最权威的教程地址!:https://www.jianshu.com/p/5e6b77a2e4ae

TB2仿真

Turtlebot详细教程(indingo)
扫了一遍
Turtlebot与仿真
虽然仿真了大部分,后面多turtlebot没有仿真(因为根据教程的来仿真不来 其是indingo并且kinetic的没有某些东西,要搜kinetic的多turtlebot)以及最后两个demo不成功,倒数第二个跑的乱七八遭,倒数第一个gazibo的world没有出来,一片黑,然后要执行slam功能时候报错没有sklearn,在考虑是否要用anconda,因为py2.7的下sklearn挺麻烦)


SLAM 涉及到的算法

需要了解的东西:

SLAM:经典2D_SLAM算法比较:Hector slam、gmapping、cartographer
hector_slam 很久之前的
slam_karto
cartographer 貌似是现在的state of art
GMapping 貌似没有带回环检测,所以师兄不推荐
navigation

navigation,导航包
navigation介绍: http://wiki.ros.org/navigation
navigation应用:http://wiki.ros.org/navigation/Tutorials/RobotSetup

gmapping

gmapping SLAM建图软件包
gmapping介绍: http://wiki.ros.org/gmapping
gmapping介绍:http://wiki.ros.org/slam_gmapping
gmapping介绍:http://wiki.ros.org/openslam_gmapping?distro=indigo

AMCL

amcl介绍:http://wiki.ros.org/amcl

如果PRlidar端口改变

Error, cannot bind to the specified serial port /dev/rplidar.

https://blog.csdn.net/qq_40157728/article/details/88690223
https://unix.stackexchange.com/questions/437891/error-cannot-bind-to-the-specified-serial-port-dev-ttyusb0-during-boot-using-s
https://answers.ros.org/question/199561/rplidar-driver-installation-problem-on-ubuntu/

TB2base pkg

Ubuntu16.04+kinetic下学习turtlebot2之turtlebot2包的安装及简单测试
https://github.com/turtlebot/turtlebot_simulation.git
not found
changed to https://github.com/turtlebot/turtlebot_simulator.git

两个电脑ssh连接

https://blog.csdn.net/weixin_42056625/article/details/88413981

手柄控制TB2

turtlebot入门-xbox360无线游戏杆控制turtlebot
实验室是罗技手柄
罗技F710无线手柄在ROS下的安装使用:
这里需要注意的是

  1. 我们首先需要按下手柄中间的logitech这时候匹配了 才会有js0出现
  2. 注意手柄要选择direct 模式 也就是手柄前侧xd切换按钮那里。
  3. 出现js0之后使用sudo jstest /dev/input/js0测试,需要按下RT或者LT(手柄后方的防错误按纽)
  4. 如果发现不行,更换sudo jstest /dev/input/js0 js后面的数字,有时候会更变
    在这里插入图片描述

然后按照
turtlebot入门-xbox360无线游戏杆控制turtlebot

使用手柄

关闭之前所有打开的终端,重新打开启动roscore

$ roscore

新终端启动turtlebot

$roslaunch turtlebot_bringup minimal.launch

新终端设置设备并启动游戏杆遥控支持

如果出现端口改变 从js0到js4,那么
rosparam set /joystick/dev /dev/input/js4

$rosparam set /joystick/dev /dev/input/js0
$roslaunch turtlebot_teleop logitech.launch
测试使用,按住左边的LB按钮激活游戏杆并移动左遥控杆,Turtlebot应该就有反应。


手柄控制小乌龟

ROS之游戏手柄控制乌龟和机器人
因为发现那个显示屏需要充电,所以先充他个几小时,为了加强自己开发ROS的能力,决定试一试这个手柄控制乌龟,如果之后想再锻炼,可以手柄控制仿真小乌龟

首先创建包的话catkin_create_pkg helloturtle std_msgs roscpp
写好logteleop.cpp名字之后
下面是根据我们的名字改的launch文件

<launch>
    <node pkg="turtlesim" type="turtlesim_node" name="sim">
    </node>
    <node pkg="helloturtle" type="logteleop" name="logteleop" output="screen"> 
    </node>
    <!--input axis -->
      <param name="axis_linear" value="4" type="int"/>
       <param name="axis_angular" value="3" type="int"/>
       <!--input vel -->
       <param name="vel_linear" value="2" type="double"/>
       <param name="vel_angular" value="1.5" type="double"/>
    <node  respawn="true" pkg="joy" type="joy_node" name="joystick" >
  
    </node>
    
</launch>

但是就是一直显示找不到
ERROR: cannot launch node of type [helloturtle/logteleop]: can’t locate node [logteleop] in package [helloturtle]

的确是
在这里插入图片描述
在rosrun自动补全后发现下面只能看到hello_world_node 明显是之前看教程的时候编译下来的node,而自己的node不存在,我还需要好好看一下ROS编程书
书中需要修改CMakeList.txt
在这里插入图片描述
在这里插入图片描述我在修改了package.xml and CMakeList.txt之后cm发现
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191231131805551.png在这里插入图片描述
没有报错了 ,下面是我的package.xml and CMakeList.txt
CMakeList

cmake_minimum_required(VERSION 2.8.3)#指定cmake最低版本
project(my_first_ros_pkg)#指定pkg名 需要和package.xmlpkg名相同
find_package(catkin REQUIRED COMPONENTS  roscpp  std_msgs geometry_msgs sensor_msgs)#添加依赖包
catkin_package(  CATKIN_DEPENDS roscpp std_msgs) #catkin构建选项
include_directories(  ${catkin_INCLUDE_DIRS})#指定包含目录的选项
#构建之后要创建的可执行文件的选项,生成logteleop可执行文件
add_executable(logteleop src/logteleop.cpp)
#创建特定的可执行文件之前将库和可执行文件进行连接
target_link_libraries(logteleop  ${catkin_LIBRAR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值