• ROS机器人小车建模仿真与SLAM


    一、URDF

    ​ URDF,即统一机器人描述格式(Unified Robot Description Format),是一种用于描述机器人模型的XML文件格式。URDF文件包含了机器人的物理和关节属性,使得机器人可以在仿真环境中被准确地表示和模拟。URDF是ROS(机器人操作系统)中广泛使用的一种格式,但它也可以独立于ROS使用。

    URDF文件的主要组成部分包括:

    • 机器人(Robot):定义了机器人的根元素,包含了机器人的所有链接(links)和关节(joints)。
    • 链接(Link):代表机器人的一个物理部分,可以是机器人的手臂、腿部或任何其他部分。每个链接都有其几何形状、质量、尺寸和视觉/碰撞属性。
    • 关节(Joint):定义了链接之间的连接方式,可以是旋转关节(revolute)、滑动关节(prismatic)或其他类型。关节定义了链接之间的相对运动。
    • 材料(Material):定义了链接的视觉属性,如颜色、纹理等。
    • 传感器(Sensor):可以附加到链接上,用于在仿真中模拟传感器的功能。
    • 插件(Plugin):允许URDF文件包含自定义的脚本或行为。

    URDF文件使得开发者能够在不同的仿真环境中重用机器人模型,同时也方便了机器人设计和仿真的交流。URDF文件可以被转换成其他格式,以适应不同的仿真软件或机器人控制系统。

    二、创建小车模型

    1.创建功能包

    mkdir -p catkin_ws/src
    cd catkin_ws/src
    catkin_init_workspace
    

    2.导入依赖

    catkin_create_pkg jubot_demo urdf xacro 
    cd jubot_demo/
    mkdir urdf
    mkdir launch
    mkdir meshes
    mkdir config
    

    在这里插入图片描述

    3.创建urdf,launch文件:

    
     
      
      
     
      
      
      
     
      
      
      
     
      
      
     
     
    
    

    urdf:

    
     
     
     
    
      
      
        
          
            
          
        
      
     
      
      
      
        
          
            
          
          
          
            
          
        
      
     
      
        
        
        
      
     
      
      
      
      
        
          
            
          
          
          
            
          
        
     
      
     
      
        
        
        
        
      
     
     
      
        
          
            
          
          
          
            
          
        
     
      
     
      
        
        
        
        
     
      
     
     
      
      
      
      
        
          
            
          
          
          
            
          
        
      
     
      
        
        
        
        
      
     
      
        
          
            
          
          
          
            
          
        
      
     
      
        
        
        
        
      
    
    

    4.可视化

    先编译配置launch文件,退到主目录catkin_ws下,执行catkin_make。

    成功之后,再执行 catkin_make install。
    然后在主目录catkin_make下配置环境变量source devel/setup.bash。

    检测环境变量是否配置成功echo $ROS_PACKAGE_PATH。

    再启动launch文件,完成可视化的建立:
    创建启动文件:

    cd ~/catkin_ws/src/mbot_description/launch
    sudo gedit display_mbot_base_urdf.launch
    

    在打开的文件中写入

    
       
    	
    	
    	
    	
    	
    	
    	
    	
    	
    
    
    

    建立可视化

    roslaunch jubot_demo box_launch.launch
    

    得到模型:

    在这里插入图片描述

    三、添加雷达

    1.xacro文件

    在urdf文件夹下建一个xacro文件夹,在终端打开。

    在文件夹中新建my_base.urdf.xacro文件,编写xacro文件:

    vim my_base.urdf.xacro
    

    在打开的文件中写入

    
    
        
    
        
            
        
       
         
         
         
         
     
       
        
          
            
              
            
          
        
     
        
          
            
              
            
            
            
              
            
          
        
     
        
          
          
          
        
     
       
        
        
       
        
          
            
              
                
              
              
              
            
          
     
          
            
            
            
            
          
        
        
        
      
         
     
        
        
          
            
                
                    
                
                
                
            
          
     
          
              
              
              
              
          
        
     
        
        
     
    
    

    2.集成和修改launch

    加载robot_description时使用command属性,属性值就是调用 xacro 功能包的 xacro 程序直接解析 xacro 文件,然后启动launch文件

    box_launch

     
     
      
     
      
     
      
      
     
      
      
     
      
     
     
    
    

    将launch修改为

     
     
    
     
    
      
        
     
    
      
      
     
      
      
      
     
    
      
     
     
    
    

    3.添加摄像头和雷达

    在xacro文件夹中新建my_camera.urdf.xacro

    
        
         
         
         
         
         
         
        
            
                
                    
                
                
                
            
        
     
        
            
            
            
        
    
    
    

    my_car_camera.urdf.xacro

     
    
        
        
        
    
    

    my_laser.urdf.xacro文件

     
    
       
        
        
        
        
        
        
    
       
       
           
               
                   
               
               
               
           
       
    
       
           
           
           
       
    
    

    在这里插入图片描述

    三.GAZEBO仿真

    修改碰撞属性和惯性矩阵,导入到gazebo中。

    my_base.urdf.xacro:

     
        
            
                
                
            
        
     
        
            
                
                 
            
        
     
        
           
                   
                   
           
       
    
    

    my_camera.urdf.xacro:

     
     
         
         
         
         
         
         
     
         
     
        
            
                
                    
                
                
                
            
            
                
                    
                
                
            
            
        
     
        
            
            
            
        
        
            Gazebo/Blue
        
    
    

    my_car_camera.urdf.xacro:

     
     
         
         
         
         
         
     
         
     
        
            
                
                    
                
                
                
                    
                
            
     
            
                
                    
                
                
            
     
            
     
        
     
        
            
            
            
        
     
        
            Gazebo/White
        
     
         
         
         
         
         
     
         
     
        
            
                
                    
                
                
                
            
            
                
                    
                
                
            
            
        
     
        
            
            
            
        
        
            Gazebo/Black
        
    
    

    my_laser.urdf.xacro:

    
        
        
        
        
    
    

    在终端进入launch目录

    vim gazebo_car.launch
    

    在打开的文件中写入:

    
        
        
        
    
    

    四、orbslam2+kitti

    1.下载

    • 下载依赖:https://gitcode.com/raulmur/ORB_SLAM2/overview?tab=readme-ov-file&utm_source=csdn_github_accelerator&isLogin=1

    • 下载Pangolin

    cd Pangolin
    mkdir build && cd build
    cmake ..
    sudo make -j8
    
    • 下载Ceres
    sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
    cd ceres-solver
    mkdir build && cd build
    cmake ..
    sudo make -j8
    sudo make install
    
    • 下载g2o
    sudo apt-get install qt5-qmake qt5-default libqglviewer-dev-qt5 libsuitesparse-dev libcxsparse3 libcholmod3
    cd g2o
    mkdir build && cd build
    cmake ..
    sudo make -j8
    sudo make install
    
    • 下载DBoW3
    mkdir build
    cd build/
    cmake ..
    make
    sudo make install
    

    2.安装编译ORB_SLAM2

    (1)下载ORB_SLAM2的安装包

    sudo apt-get install ORB_SLAM2
    

    (2)配置环境

    cd ~/catkin_ws/src/ORB_SLAM2
    sudo chmod +x build.sh
    ./build.sh
    

    (3)使用ROS编译

    sudo chmod +x build_ros.sh
    ./build_ros.sh
    

    3.运行Kitee数据集

    • 下载数据集:https://www.cvlibs.net/datasets/kitti/eval_odometry.php

    • 运行ORB_SLAM2
      在这里插入图片描述

  • 相关阅读:
    【网络安全带你练爬虫-100练】第20练:数据处理-并写入到指定文档位置
    async-await与try-catch
    C语言日记 33 构造函数
    【数据结构】【栈与队列】循环队列的实现及基本操作(使用顺序队列)(可直接运行)
    CASS11.0.0.4 for AutoCAD2010-2023免狗使用方法
    IntelliJ IDEA 上 使用git 合并其他分支,合并某一个提交
    KT148A语音芯片的下载板子导入F1A声音下载操作多次只成功一次都没有声音
    static静态成员变量使用@Value注入方式
    路由器二次开发一步一步把工业路由器变成一个高端的可指定出网、节点和链路的路由器,包含详细过程及快捷脚本(二)
    浅析云计算领域的专业名词
  • 原文地址:https://blog.csdn.net/cbm2001/article/details/139725674