一键安装基于 docker 的 ros 环境(gazebo&rviz)
最编程
2024-03-08 20:49:18
...
import argparse
import docker_utils as ut
import os
def main():
# Parse arguments
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--gazebo', dest="gazebo_version", default="9")
parser.add_argument('-r1', '--ros1', dest="ros1_version", default="melodic")
parser.add_argument('-r2', '--ros2', dest="ros2_version", default="")
args = parser.parse_args()
gz_version_tag = '9'
# If ROS 2 is not defined, ROS 1 is compiled
if args.ros2_version == "":
# Compile ROS 1
ros_version_name = 'ros1'
ros_version_tag = args.ros1_version
gz_version_tag = args.gazebo_version
else:
# Compile ROS 2
ros_version_name = 'ros2'
ros_version_tag = args.ros2_version
if not (args.gazebo_version == "9"):
print("Gazebo 9 is only supported. Using this version by default.")
# Select image to compile
image_name = '{}'.format(ros_version_name)
# Build selected image
command = 'cd {} && ROS_VERSION={} GZ_VERSION={} make {}'.format(
ut.get_repo_root(), ros_version_tag, gz_version_tag, image_name)
ut.run_command(command)
if __name__ == '__main__':
main()