21 OSs = {
'humble':
'jammy',
'iron':
'jammy',
'jazzy':
'noble'}
22 Prefixs = {
'humble':
'H',
'iron':
'I',
'jazzy':
'J'}
32 'nav2_collision_monitor',
34 'nav2_constrained_smoother',
39 'nav2_dwb_controller',
40 'nav2_graceful_controller',
41 'nav2_lifecycle_manager',
43 'nav2_mppi_controller',
47 'nav2_regulated_pure_pursuit_controller',
48 'nav2_rotation_shim_controller',
50 'nav2_simple_commander',
54 'nav2_theta_star_planner',
56 'nav2_velocity_smoother',
58 'nav2_waypoint_follower',
62 Distros = [
'humble',
'iron',
'jazzy']
64 def getSrcPath(package, prefix, OS):
65 return f
'https://build.ros2.org/job/{prefix}src_u{OS[0]}__{package}__ubuntu_{OS}__source/'
67 def getBinPath(package, prefix, OS):
68 return f
'https://build.ros2.org/job/{prefix}bin_u{OS[0]}64__{package}__ubuntu_{OS}_amd64__binary/'
70 def createPreamble(Distros):
71 table =
'| Package | '
72 for distro
in Distros:
73 table += distro +
' Source | ' + distro +
' Debian | '
76 for distro
in Distros:
77 table +=
' :---: | :---: |'
81 header = createPreamble(Distros)
84 for package
in Packages:
85 entry = f
'| {package} | '
86 for distro
in Distros:
88 prefix = Prefixs[distro]
90 srcURL = getSrcPath(package, prefix, OS)
91 binURL = getBinPath(package, prefix, OS)
92 response = requests.get(srcURL)
94 if response.status_code != 200:
95 entry +=
'N/A | N/A | '
97 entry += f
'[]({srcURL}) | '
98 entry += f
'[]({binURL}) | '
103 body = body.replace(
'| opennav_docking |',
'| nav2_docking |')
105 body = body.replace(
'| nav2_regulated_pure_pursuit_controller |',
'| nav2_regulated_pure_pursuit |')
107 print(header +
'\n' + body)
109 if __name__ ==
'__main__':