{"id":18422425,"url":"https://github.com/sri-csl/radler","last_synced_at":"2025-04-07T14:32:46.987Z","repository":{"id":78015323,"uuid":"85789174","full_name":"SRI-CSL/radler","owner":"SRI-CSL","description":"Radler","archived":false,"fork":false,"pushed_at":"2025-03-20T22:08:58.000Z","size":23086,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":21,"default_branch":"ros2","last_synced_at":"2025-03-20T23:23:15.467Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://radler.csl.sri.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SRI-CSL.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-22T05:37:55.000Z","updated_at":"2025-03-20T22:09:03.000Z","dependencies_parsed_at":"2024-06-12T02:44:05.600Z","dependency_job_id":"5726500d-0eb1-4358-a435-80880717ceb2","html_url":"https://github.com/SRI-CSL/radler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Fradler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Fradler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Fradler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Fradler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SRI-CSL","download_url":"https://codeload.github.com/SRI-CSL/radler/tar.gz/refs/heads/ros2","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247670206,"owners_count":20976525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:29:44.318Z","updated_at":"2025-04-07T14:32:45.880Z","avatar_url":"https://github.com/SRI-CSL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Radler framework takes its inspiration from the Robot Operating System (ROS). In Radler framework, the sensors, controllers, and actuators are constructed from functional units called nodes. Each node executes independently with a period determined by a local clock and scheduling constraints. Radler supports a publish/subscribe architecture where nodes communicate by publishing on certain topics and subscribing to other topics.\n\nRadler can generate executable code for both ROS1 and SROS2 with the intent that a significant part of the RADL specification and user code will remain the same or at least similar. The adoption of ROS2 is critical to the security properties of both communication channels and resource isolation, eliminating the need for a master node. The Radler codebase has been updated to be compatible with ROS1 on the `master \u003chttps://github.com/SRI-CSL/radler/tree/master\u003e`__ branch and ROS2 on the `ros2 \u003chttps://github.com/SRI-CSL/radler/tree/ros2\u003e`__ branch of the Radler repository at https://github.com/SRI-CSL/radler.\n\nGetting Started \n=============== \n\nFind the documentation at https://sri-csl.github.io/radler/\n\nTo install  \n----------\n\nTo checkout repository::\n\n    git clone https://github.com/SRI-CSL/radler.git\n    cd radler\n    git submodule update --init --recursive\n\nTo get Radler working on a clean version of Ubuntu 20.04::\n\n        sudo apt-get install cmake python3-pip\n        sudo pip3 install tarjan pyyaml pydot\n\nTo install ROS2 Foxy, follow the instructions from https://docs.ros.org/en/foxy/Installation.html\n\nTo install colcon, follow the instructions from https://colcon.readthedocs.io/en/released/user/installation.html\n\nSample Vagrantfile is available from https://github.com/SRI-CSL/radler/blob/ros2/examples/ardupilot/vagrant/Vagrantfile\n\nTo compile and run  \n----------------------------\n\nCompile\n~~~~~~~~\nRadler generates files from the RADL file into a usual ROS2 structure, then a call to `colcon build` will generate the executables as usual.\n(e.g., see  `examples/pubsub/pubsub.radl`)::\n\n        mkdir -p /tmp/ros2_ws/src\n        ./radler.sh --ws_dir /tmp/ros2_ws/src compile examples/pubsub/single_machine/pubsub.radl --plant plant --ROS\n        cd /tmp/ros2_ws\n        colcon build\n\nRun\n~~~~\n\nThe simplest way of running it is to source the ros2 workspace we just compiled and invoke it by name directly::\n\n    source install/local_setup.bash\n    ./install/pubsub/bin/listener\n    ./install/pubsub/bin/talker\n\nYou should see the output of the two nodes explaining that they are communicating. For more details see `pubsub` example documentation. \n\nYou can stop everything by typing Ctrl-C.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fradler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsri-csl%2Fradler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Fradler/lists"}