学习古月课程遇到的问题以及实践过程

[ERROR] [1606287586.296484659]: No link elements found in urdf file

ros第四讲中用xacro代替urdf完成建模工作时,出现此问题,原因两种:

  1. 仔细检查地.xacro文件的函数名调用,是否和其他调用文件一样。

2.  这个很可能是版本问题。

学习古月课程遇到的问题以及实践过程_第1张图片

只是少了红字部分!!!

Arbotix

git clone GitHub - vanadiumlabs/arbotix_ros: Arbotix ROS drivers repository

运行roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch出现问题:

[ERROR] [1663576090.639476470]: Failed to build tree: parent link [base_link] of joint [camera_joint] not found.  This is not valid according to the URDF spec. Every link you refer to from a joint needs to be explicitly defined in the robot description. To fix this problem you can either remove this joint [camera_joint] from your urdf file, or add "" to your urdf file.

要注意两点

  1. 解决方法:在所有调用wheelcastersphere_inertial_matrixcylinder_inertial_matrixmbot_base_gazebo的语句里,使用命名空间xacro:
  2. 本次错误是因为粘贴过来的代码文件里少了一行内容

学习古月课程遇到的问题以及实践过程_第2张图片

没有这行内容,就不会有模型!!!

roslaunch mbot_teleop mbot_teleop.launch

运行键盘控制节点时报错入下

学习古月课程遇到的问题以及实践过程_第3张图片

应该是python版本问题,古月老师用的是py2

而我用的ubuntu20.04自带py3

解决方法:

  1. 先执行sudo ln -s /usr/bin/python3 /usr/bin/python
  2. 我用的是ubuntu20.04,所以是python3的版本,与古月老师用的不一样所以需要修改~/catkin_ws/src/mbot_teleop/scripts/mbot_teleop.py文件中的所有的print后加()   ---问题解决!!!

参考博客:

(151条消息) [mbot_teleop-1] process has died [pid 3237, exit code 127, cmd /home/arise/sources/catkin_ws/src/mbo_云大圣的博客-CSDN博客

使用gazebo仿真建模时用到了

view_mbot_gazebo_empty_world.launch

mbot_gazebo.xacro

mbot_base_gazebo.xacro 这三个文件

开始由于命名空间的问题会有错误,加上命名空间后,错误消除

运行roslaunch mbot_gazebo view_mbot_gazebo_empty_world.launch

不报错,也没有模型出现???

解决方法:左边的mbot只加载了一个差速控制插件,其他主体都没有加载,第一个解决办法当然是版本降级,如果ubunturos版本都降到和老师一样肯定能运行,但是....不想降.....所以经过几个小时的研究,我发现其实和刚刚的情况一样,问题就出在升级后,有些写法的规则改了,所有自定义的macro,要引用的话都要加上xacro:

我们把mbot_base_gazebo.xacro里自定义的cylinder_inertial_matrix, sphere_inertial_matrix ,wheel, caster 四个标签引用的时候都加上xacro

链接:ros + gazebo未报错却加载不出来机器人模型 解决办法_陈君豪的博客-CSDN博客_gazebo加载不了机器人模型

模型可以加载出来了,但是无颜色如图示

学习古月课程遇到的问题以及实践过程_第4张图片

解决方案:

  3D图像的加速去除,需要关闭系统再去修改!

Gazeba加载摄像机模型报错:

roslaunch mbot_gazebo view_mbot_with_camera_gazebo.launch  如下:

学习古月课程遇到的问题以及实践过程_第5张图片

还是老问题,运行该launch文件的加载参数模型那块,缺少命名空间

roslaunch mbot_gazebo view_mbot_gazebo_play_ground.launch

使用命令加载障碍物模型总是加载不出来,原来是少了个文件

/home/wxd/catkin_ws/src/mbot_gazebo/worlds/playground.world

摄像头标定

sudo apt-get install ros-noi-camera-calibration

还需要标定工具

第五讲

roslaunch usb_cam usb_cam-test.launch报错

学习古月课程遇到的问题以及实践过程_第6张图片

运行命令

  1. roslaunch robot_vision usb_cam.launch  有警告
  2. rosrun camera_calibration cameracalibrator.py  --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam 

出现摄像头界面

下边就需要使用标定板了,由于暂时没有所以先不操作

测试例程,图像经opencv处理后发布到ros里通过话题的形式查看

  1. roslaunch robot_vision usb_cam.launch
  2. rosrun robot_vision cv_bridge_test.py
  3. rqt_image_view

可以看到图像是经过opencv处理过后的,有标记!

启动人脸识别例程

  1. roslaunch robot_vision usb_cam.launch
  2. roslaunch robot_vision face_detector.launch
  3. rqt_image_view

启动物体跟踪例程时出现错误

  1. roslaunch robot_vision usb_cam.launch
  2. roslaunch robot_vision motion_detector.launch
  3. rqt_image_view

学习古月课程遇到的问题以及实践过程_第7张图片

实际是因为opencv版本不一致引起的,只需要删除一个参数就可以完美解决,因此删除第一个参数后,可以正常运行。

参考博客:解决报错ValueError: not enough values to unpack (expected 3, got 2)_一只铠甲蟹的博客-CSDN博客

二维码识别:  无法下载功能包

sudo apt-get install ros-noetic-ar-track-arvar

E: 无法定位软件包 ros-noetic-ar-track-arvar

noetic 没有这两个包 ar_track_alvar / ar_track_alvar_msgs

参考博客:noetic 安装 ar_track_alvar /ar_track_alvar_msgs_yunmubing的博客-CSDN博客

# cd ~ 安装colcon

  1. sudo apt install python3-colcon-common-extensions

# 在ws/src目录下

  1. git clone https://github.com/machinekoder/ar_track_alvar.git -b noetic-devel

# colcon

colcon build

# cd ..

  1. catkin_make -DCMAKE_BUILD_TYPE=Release

问题解决了!

开始创建二维码

rosrun ar_track_alvar createMarker  显示创建二维码参数表

创建一个二维码实验

rosrun ar_track_alvar createMarker -s 5 0

启动二维码识别示例

roslaunch robot_vision usb_cam_with_calibration.launch 报错:

学习古月课程遇到的问题以及实践过程_第8张图片

每次出现这种错误都需要以下操作,不知道为什么,每次加载摄像头节点,都需要点一下!!!

学习古月课程遇到的问题以及实践过程_第9张图片

解决后重新执行

roslaunch robot_vision usb_cam_with_calibration.launch

roslaunch robot_vision ar_track_camera.launch

将打印好的二维码放置进来,可以有直观的识别效果

rostopic echo /ar_pose_marker   --查看识别到的二维码姿态

启动Kinecte二维码识别示例

roslaunch robot_vision freenect.launch  报错如下:

学习古月课程遇到的问题以及实践过程_第10张图片

因该是缺失文件

第六讲

运行仿真环境的launch文件出错

roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch

学习古月课程遇到的问题以及实践过程_第11张图片

检查过后了,还是没有发现问题,决定重建一个工作空间catkin_ws6

将网盘上的代码放进去,运行里边的功能包

但是我将工作空间设置好后仍然是之前路径的功能包,不知道为什么会这样

学习古月课程遇到的问题以及实践过程_第12张图片

如图示:可以看到路径优先级是新建的工作空间catkin_ws6但是在运行mbot_gazebo功能包时并不是该空间下的,还是之前空间里边的

发现问题原来并不是路径问题,而是后来的ws6里边的mbot_gazebo功能包是有问题的,因为直接从网盘里拉过来的功能包并不完全,没有配置文件xaml  CmakeList.txt文件

以上内容已发布到博客,接下来准备重新看前边的内容,在ubuntu系统上完成同样的工作,重新看一下前边内容,并做好笔记

 虚拟机的工作无法进行下去了!!!

  mbot_description  这个功能包出现问题了暂时不知道怎么解决

啥也没干他自己好了,可以运行了,

但是发现一处bug

学习古月课程遇到的问题以及实践过程_第13张图片红圈圈内容可删除,没用

将古月的mbot_navigation功能包添加进工作空间编译出现错误

学习古月课程遇到的问题以及实践过程_第14张图片

就是缺少一个依赖包,执行命令安装

sudo apt-get install ros-版本 -navigation

问题解决!

roslaunch mbot_navigation gmapping_demo.launch  报错如下:

学习古月课程遇到的问题以及实践过程_第15张图片

缺包 安装

sudo apt install ros-noetic-gmapping  解决!

  1. roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
  2. roslaunch mbot_navigation gmapping_demo.launch
  3. roslaunch mbot_teleop mbot_teleop.launch

效果如下:

学习古月课程遇到的问题以及实践过程_第16张图片

学习古月课程遇到的问题以及实践过程_第17张图片

开始尝试编译cartographer出现问题

ros第六讲里边有两个包直接拿出来了,自己在下载一个ceres

执行命令catkin_make_isolated --install --use-ninja  报错

学习古月课程遇到的问题以及实践过程_第18张图片

原来就是ceres库没装好,随便找个教程

git clone GitHub - ceres-solver/ceres-solver: A large scale non-linear optimization library

安装依赖项

sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

编译安装就可以了

catkin_make_isolated --install --use-ninja 后出现

学习古月课程遇到的问题以及实践过程_第19张图片

看了一下博客,大多是说protoc 版本问题,但是我看了一下该版本为3.6.1是没问题的,因此决定重新按步骤走一下

学习古月课程遇到的问题以及实践过程_第20张图片

之前的工作空间不是这样建立的,不知道是不是因为这个的关系!

更改域名后要恢复原状,否则无法上网!

命令:sudo gedit /etc/resolv.conf

实在是解决不了,等有机会了,在双系统上试一试

第六讲1:50讲的orb_slam

第七讲

编译moveit包直接用古月居代码出现问题找不到manipulation_msgs包

学习古月课程遇到的问题以及实践过程_第21张图片

解决办法:

新版本中,这个功能包被弃用了,如果你是noetic版本的moveit,你不需要去使用这个功能包,你需要编辑你文件中CMakerLists.txt ,删除find_package中 manipulation_msgs 就可以编译成功了!!

学习古月课程遇到的问题以及实践过程_第22张图片

后边还会缺失几个包,但是都问题不大,缺什么装什么,可以参考下边连接

ROS 编译发生错误:Could not find a package configuration file provided by... Could not find the required - 代码天地 (codetd.com)

1.打开简单机械臂模型

roslaunch marm_description view_arm.launch

学习古月课程遇到的问题以及实践过程_第23张图片

  1. 启动配置文件moveit_setup_assistant

rosrun moveit_setup_assistant moveit_setup_assistant

(加载模型文件)  配置完成后将配置文件保存到工作空间下

启动例程  报错:

roslaunch marm_moveit_config demo.launch

学习古月课程遇到的问题以及实践过程_第24张图片

参考博客:

(160条消息) 使用moveit_setup_assistant生成配置包之后,在功能包内打开终端运行roslaunch demo.launch,报错 RLException: error loading <rosp_anthony-36的博客-CSDN博客

问题一模一样,可以解决!!!

关于机械臂的例程,可以看第七讲ppt应该都能编译通过

第四部分利用机械臂仿真时

运行例程

roslaunch marm_gazebo arm_bringup_moveit.launch报错:

学习古月课程遇到的问题以及实践过程_第25张图片

rviz gazebo界面都能打开,模型参数也能加载,但是控制机械臂运动,gazebo模型动不了,应该是消息接口定义的问题

参考博客

(161条消息) MoveIt!控制Gazebo仿真机械臂时遇到的问题与解决_张余恒的博客-CSDN博客  仍有问题没解决

学习古月课程遇到的问题以及实践过程_第26张图片

还是动不了

和上边的没有关系,只要一执行execute就会报错 如下:

学习古月课程遇到的问题以及实践过程_第27张图片

参考博客

(161条消息) 古月ros第七章——ROS理论与实践Moveit的gazebo仿真报错解决方案_ReEchooo的博客-CSDN博客     不能解决!

机械臂仍然不能动

怀疑缺少ur支持包

$ cd ~/catkin_ws/

 #clone the driver

$ git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Driver

 #clone fork of the description.

$ git clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robot

 #clone ur_msgs

$ git clone https://github.com/ros-industrial/ur_msgs.git src/ur_msgs

$ rosdep update #如果之前在安装ros时候已经做了这步那就不用重复了

$ rosdep install --from-paths src --ignore-src -y

$ rosdep update:开始报错

(161条消息) rosdep update失败的解决方法_画茧自缚的博客-CSDN博客_rosdep update出错

参考方法(三)解决问题  !!!  rosdep update 成功!

但是

$ rosdep install --from-paths src --ignore-src -y  仍然报错!

原来有个配置文件里边用到了manipulation_msgs 所以一直过不了,我将它注释掉以后

此命令可以运行了

然后在执行catkin_make 顺利通过!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

一通操作搞完后,发现没啥用,gazebo里边的机械臂模型仍然不会动???

最新结论:可能是版本问题  

需要注意的是不要忘记安装控制器的包

sudo apt install ros-melodic-ros-controllers

看第八讲发现里边有个刚更新的第七讲的代码包,于是拿过来试了一试,终于成功了!!!

至此问题解决

对比了两个代码文件,发现相关配置文件并没有什么不同,不知道原因是什么???

第八讲

加载pr2机器人,并启动控制接节点都没有问题,执行命令看第八讲ppt

roslaunch pr2_gazebo pr2_empty_world.launch  启动pr2机器人

roslaunch pr2_moveit_config demo.launch   控制手臂运动

加载turtlebot机器人时,找不到视频上让更新的环境变量

export TURTLEBOT_GAZEBO_WORLD_FILE="/opt/ros/noetic/share/turtlebot3_gazebo/worlds/turtlebot3_world.world"(playground.world

roslaunch turtlebot3_gazebo turtlebot3_world.launch

执行报错  原因:

需要执行   export TURTLEBOT3_MODEL=burger  这条命令

发现我安装

sudo apt-get install ros-noetic-turtlebot-*

自动安装的就是turtlebot3版本的!

Moveit+gazebo联合仿真

roslaunch ur_gazebo ur5_bringup.launch

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

出现无法控制现象

学习古月课程遇到的问题以及实践过程_第28张图片稍微改一下配置就好了

第八讲本身没有代码所以只能看视频了

学习古月课程遇到的问题以及实践过程_第29张图片

你可能感兴趣的:(ros学习实践记录,学习)