Ubuntu18.04 ROS 멜로디 환경에서 Gazebo 소프트웨어(gmapping/karto/cartographer/hector)를 통해 학습하는 SLAM 알고리즘을 시뮬레이션합니다.

목차

1. 환경 현장 구축 세계

1. 삽입 플러그인을 다운로드합니다. (일부 구축된 장면은 이 플러그인 아래 제공되지만 다운로드할 필요는 없습니다.)

2. 환경 구축(자체 구축)

3. 환경을 보호하세요

4. 구성 수정

5. 환경 시작

2. 로봇 모델 URDF

1. 모델 생성을 위한 문서 작성 사양

2. 파일 형식이 올바른지 확인하세요

3. 모델 시작

로봇 3대가 현장에서 움직인다

1. 로봇을 현장에 배치

2. 자동차에 센서와 액추에이터를 장착하세요

3. 현장에서 자동차를 움직이게 하세요.

4개의 시뮬레이션 2차원 레이저 SLAM 켜짐소스 알고리즘 gmapping, 지도 제작자, karto, hector



1. 환경 현장 구축 세계


1. 삽입 플러그인 다운로드(이 플러그인은 일부 빌드된 장면을 제공하므로 다운로드할 수 없습니다.)

다운로드하여 홈 디렉터리의 .gazebo에 저장하고(.gazebo 파일을 표시하려면 ctrl+h를 사용) 모델 이름을 지정합니다.

2. 환경 구축(자체 구축)

편집에서 빌딩 명령을 통해 상단은 2차원 다이어그램, 하단은 3차원 다이어그램이 됩니다.

3. 환경을 보호하세요

월드를 파일로 저장하여 함수 패키지 내의 world 폴더에 저장하는데, 이 경로는 자체 제작한 환경 월드를 저장하기 위해 특별히 사용되는 경로입니다.

4. 구성 수정

환경을 시작하는 실행 파일을 수정하고 이름을 전망대_world.launch로 지정했습니다. world를 이전 단계에서 저장한 이름으로 변경합니다.

5. 환경 시작

환경을 설정한 후 실행 파일을 통해 별도로 시작할 수 있습니다. (환경만 보기)

roslaunch bingda_tutorials gazebo_world.launch

2. 로봇 모델 URDF


1. 모델 생성을 위한 문서 작성 사양

/<로봇>

/<링크>(본체)색상/질량/관성/크기/모양/충돌

/

해당 설명과 사용 지침은 공식 웹사이트 링크에 ​​있습니다:urdf/XML/link - ROS Wiki

2. 파일 형식이 올바른지 확인하세요

check_urdf mybot.urdf //需要roscd定位在urdf目录下,笔者文件名为mybot.urdf

디스플레이 파일과 로봇 모델이 정확하고 부모-자식 관계가 표시됩니다.

 3. 모델 시작

(rviz에 표시할 로봇 모델만 시작하십시오. 이 단계는 사용자 본인만을 위한 것이며 실제적인 의미는 없습니다.)

시작하기 전에 display_robot.launch 파일에 있는 텍스트 파일의 urdf 파일 이름이 첫 번째 단계의 파일 이름과 일치하는지 확인하세요.

roslaunch bingda_tutorials display_robot.launch //启动机器人urdf模型,该launch文件关联rviz,在rviz中显示

모델링이 제대로 되었는지는 rviz에서 확인하실 수 있습니다


로봇 3대가 현장에서 움직인다


1. 로봇을 현장에 배치

(1) Gazebo_robot.launch 파일을 통해 구현된 작성 구문에 따라 처음 두 섹션에서 생성된 파일 이름을 찾습니다.

gazebo_world.launch(환경 모델 실행 파일) 및 mybot.urdf(로봇 모델 urdf 파일)

<launch>
  <include file="$(find bingda_tutorials)/launch/gazebo_world.launch"/>
  <node name="spawn_model"  pkg="gazebo_ros"  type="spawn_model" args="-file $(find bingda_tutorials)/urdf/mybot.urdf -urdf -model robot_description" output="screen" />
</launch>

(2) 실행 파일을 시작합니다. 로봇이 현장에 배치되었지만 자동차가 움직일 수 없고 센서도 없는 것을 보여줍니다.

roslaunch bingda_tutorials gazebo_robot.launch

 urdf 파일은 rviz에서 로봇에 대한 컬러로 되어 있지만 유효하지 않으며 전망대에서는 색상을 표시하지 않으므로 전망대 형식을 따라야 합니다.

즉, .xacro 파일은 .urdf 파일을 보완하는 데 사용됩니다. (.xacro 파일은 필요하지 않으며 urdf만으로 완료할 수도 있습니다)

 2. 자동차에 센서와 액추에이터를 장착하세요

(1)xacro 파일

.xacro 파일은 .urdf 파일과 유사하지만 시작 부분에 포함 구문이 추가되고 끝에 센서 및 액추에이터가 추가됩니다.

저자는 레이더 배선 하네스, 차동 속도 제어, IMU 주파수...등과 같은 시뮬레이션 관련 구성을 mybot.gazebo.xacro에 별도로 배치하는 데 익숙합니다. 추가 방법은 전망대의 플러그인을 통해 로드되며, ROS 공식 웹사이트 Gazebo가 도입되었습니다. 모든 최종 구성을 mybot.xacro에 연결합니다. 즉, mybot.xacro 순수 모델 파일에는 mybot.gazebo.xacro 파일이 포함되어 있습니다.

 (2) 실행 파일

Simulation_robot.launch 파일에는 두 개의 파일 링크가 포함되어 있습니다.

    ——gazebo_world.launch//로봇 환경 모델——

    ——mybot.xacro//로봇 모델 및 센서 액추에이터의 모든 구성——

그런 다음 생성된 로봇을 XML 파일 구문(spawn_model)을 통해 환경 모델에 로드합니다.

모델을 시작합니다.

roslaunch bingda_tutorials simulation_robot.launch

자동차에는 이미 색상, 센서, 모터 등이 장착되어 있음을 알 수 있습니다.

3. 현장에서 자동차를 움직이게 하세요.

(1) 키보드 제어 노드를 시작합니다.

rosrun teleop_twist_keyboard teleop_twist_keyboard.py //ros中自带

추신: 키보드 제어 노드 패키지를 다운로드하지 않은 경우 다음 명령을 통해 다운로드할 수 있습니다.

sudo apt-get install ros-melodic-teleop-twist-keyboard//安装键盘控制节点

(2) 카메라 1인칭 추적 관점을 켭니다.

rqt_image_view

(3) rviz 시작

rviz

rviz는 기본 좌표 odom을 선택하고 레이더 포인트 클라우드 Lasercan 항목을 /scan, 기계 모델 모델 및 TF 관계로 추가합니다.

세 개의 창은 다음과 같습니다: 전망대, 이미지 보기, rviz


4가지 시뮬레이션 SLAM 오픈 소스 알고리즘 gmapping, 지도 제작자, karto, hector


(1) 시뮬레이션 환경을 시작합니다.

roslaunch bingda_tutorials simulation_robot.launch //仿真环境+小车(Gazebo 下)

(2) gmapping 알고리즘을 켭니다. (시뮬레이션 추가:=true; 이것은 또한 carto... 및 기타 알고리즘으로 수정될 수 있습니다.)

roslaunch robot_navigation gmapping.launch simulation:=true //启动SLAM中GMapping算法 true确保时间线的统一

(3) rviz 인터페이스를 엽니다.

roslaunch robot_navigation slam_rviz.launch  //启动rviz界面

(4) 키보드 제어 노드를 켭니다.

rosrun teleop_twist_keyboard teleop_twist_keyboard.py //ros中自带

 이 시점에서 생성한 환경을 자유롭게 돌아다니며 gmapping의 매핑 효과를 확인할 수 있습니다.

 (5) 지도 저장

roscd robot_navigation/maps/ //选择目录
rosrun map_server map_saver -f map//保存建好的图指定名称为map

추신: 관련 기능 패키지 다운로드:

1. bingda_tutorials 함수 패키지를 src 디렉터리에 배치합니다.

git clone https://gitee.com/bingda-robot/bingda_tutorials

추천

출처blog.csdn.net/weixin_68647501/article/details/128640959