시뮬레이션 환경 설치
cd ~/nav2_ws/src
git clone <https://github.com/aws-robotics/aws-robomaker-bookstore-world.git> -b ros2
내려받은 aws_robomaker_bookstore_world
패키지 빌드
cd ~/nav2_ws
colcon build --symlink-install --packages-select aws_robomaker_bookstore_world
새 터미널에서 시뮬레이션 환경 확인
# ros2 launch aws_robomaker_bookstore_world view_bookstore.launch.py
~/nav2_ws/src/neuronbot2/neuronbot2_gazebo/launch/
경로의 neuronbot2_world.launch.py
파일 일부 수정
...
def generate_launch_description():
launch_file_dir = os.path.join(get_package_share_directory('neuronbot2_gazebo'), 'launch')
pkg_gazebo_ros = get_package_share_directory('gazebo_ros')
gazebo_model_path = os.path.join(get_package_share_directory('neuronbot2_gazebo'), 'models')
**world_model_path = os.path.join(get_package_share_directory('aws_robomaker_bookstore_world'), 'models')**
if 'GAZEBO_MODEL_PATH' in os.environ:
**os.environ['GAZEBO_MODEL_PATH'] += ":" + gazebo_model_path + ":" + world_model_path**
else :
os.environ['GAZEBO_MODEL_PATH'] = gazebo_model_path
use_sim_time = LaunchConfiguration('use_sim_time', default='true')
use_camera = LaunchConfiguration('use_camera', default='none')
x_pose = LaunchConfiguration('x_pose', default='0.0')
y_pose = LaunchConfiguration('y_pose', default='0.0')
world = os.path.join(
**get_package_share_directory('aws_robomaker_bookstore_world'),**
'worlds',
**'bookstore.world'**
)
...
aws_robomaker_bookstore_world
패키지의 models
디렉토리 안에 있는 모델들을 Gazebo가 읽을 수 있도록 환경변수에 추가
**world_model_path = os.path.join(get_package_share_directory('aws_robomaker_bookstore_world'), 'models')**
if 'GAZEBO_MODEL_PATH' in os.environ:
**os.environ['GAZEBO_MODEL_PATH'] += ":" + gazebo_model_path + ":" + world_model_path**
else :
os.environ['GAZEBO_MODEL_PATH'] = gazebo_model_path
일부 함수들을 활용해 월드 파일이 있는 경로 수정
world = os.path.join(
**get_package_share_directory('aws_robomaker_bookstore_world'),**
'worlds',
**'bookstore.world'**
)
neuronbot2가 bookstore.world
에 spawn되는지 확인
ros2 launch neuronbot2_gazebo neuronbot2_world.launch.py
아래 명령어를 통해 Mapping 수행
ros2 launch neuronbot2_slam cartographer_launch.py open_rviz:=true use_sim_time:=true
터미널을 추가로 열어 아래 노드를 실행시키고 수동으로 지도 작성
ros2 run teleop_twist_keyboard teleop_twist_keyboard