{"id":15197150,"url":"https://github.com/sea-me-coss/ecu-core","last_synced_at":"2026-03-07T13:04:02.734Z","repository":{"id":244469426,"uuid":"814310132","full_name":"SEA-ME-COSS/ECU-Core","owner":"SEA-ME-COSS","description":"RaspberryPi based ECU that communicates with the local machine","archived":false,"fork":false,"pushed_at":"2024-06-17T12:50:22.000Z","size":11483,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-02T21:43:19.763Z","etag":null,"topics":["can-bus","depth-camera","lidar","raspberrypi","ros2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SEA-ME-COSS.png","metadata":{"files":{"readme":"README.md","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":"2024-06-12T18:52:03.000Z","updated_at":"2024-06-17T12:50:25.000Z","dependencies_parsed_at":"2024-06-17T14:18:03.748Z","dependency_job_id":"69f14417-d3ac-4b15-aac4-2bf36fd4f8db","html_url":"https://github.com/SEA-ME-COSS/ECU-Core","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"c0e73e7308c20afa8b4bf26f13bf14c520b15d76"},"previous_names":["sea-me-coss/ecu-core"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEA-ME-COSS%2FECU-Core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEA-ME-COSS%2FECU-Core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEA-ME-COSS%2FECU-Core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SEA-ME-COSS%2FECU-Core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SEA-ME-COSS","download_url":"https://codeload.github.com/SEA-ME-COSS/ECU-Core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241577072,"owners_count":19984940,"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":["can-bus","depth-camera","lidar","raspberrypi","ros2"],"created_at":"2024-09-28T00:43:16.690Z","updated_at":"2026-03-07T13:04:02.703Z","avatar_url":"https://github.com/SEA-ME-COSS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\n\u003cimg src=/images/Architecture_ECU-Core.png alt=\"Architecture_ECU-Core\" width=\"100%\" height=\"100%\"/\u003e\n\nThis repository is for the **ECU-Core** part of the [Autonomous-Driving-System](https://github.com/SEA-ME-COSS/Autonomous-Driving-System) project. The ECU-Core is based on an independent RaspberryPi board and performs following tasks.\n\n- Publish LIDAR scan data as ROS2 topic\n- Publish depth camera image data as ROS2 topic\n- Receive vehicle informations as ROS2 topic and convert them into CAN communication\n- Control the execution of autonomous driving mode\n\nWe used **YDLIDAR X4** and **RealSense D435** depth camera in this project. For more detailed information, refer to the [Autonomous-Driving-System](https://github.com/SEA-ME-COSS/Autonomous-Driving-System) project.\n\n# Requirements\n\n- **Ubuntu 20.04**\n\n    Install Ubuntu 20.04 for RaspberryPi using RaspberryPi OS Imager.\n\n- **CAN HAT setup**\n\n    Follow the instruction of [2-CH CAN FD HAT setup](https://www.waveshare.com/wiki/2-CH_CAN_FD_HAT) and enable **Single SPI Mode**.\n\n- **ROS2 setup**\n\n    Follow the instruction of [ROS2 foxy setup](https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html).\n\n- **LIDAR SDK setup**\n\n    Follow the instruction of [YDLidar-SDK setup](https://github.com/YDLIDAR/YDLidar-SDK/blob/master/doc/howto/how_to_build_and_install.md).\n\n- **Depth camera SDK setup**\n\n    Follow the instruction of [RealSense documentation](https://dev.intelrealsense.com/docs/docs-get-started). If you encounter issues while running the software installed on RaspberryPi, refer to the following [page](https://github.com/IntelRealSense/librealsense/issues/12462).\n\n- **OpenCV packages**\n\n    ```bash\n    pip install opencv-python\n    sudo apt install ros-foxy-cv-bridge\n    ```\n\n- **Python packages**\n\n    ```bash\n    pip install numpy\n    pip install transforms3d\n    ```\n\n# Usage\n\n```bash\n# Execute on the ECU-Core\ncolcon build\nsource install/setup.bash\nsh can_setup.sh\n\nros2 run lidar_pub lidar_pub\n\nros2 run camera_pub camera_pub\n\nros2 run receiver receiver\n\nros2 run headunit_start headunit_start\n```\n\n# Note\n\nThe ROS2 topic communication is machine-to-machine. Make sure that both ECU-Core and local machine are connected to the same WLAN. If the connection is not successful, disable the firewall using the following command.\n\n```bash\n# Execute on the ECU-Core and local machine\nsudo ufw disable\n```\n\nContext of CAN communication\n\n| Message            | Purpose                | Arbitration ID |\n|--------------------|------------------------|----------------|\n| **steering**       | **Control**            | **0x00**       |\n| **throttle**       | **Control**            | **0x01**       |\n| **x position**     | **GPS**                | **0x02**       |\n| **y position**     | **GPS**                | **0x03**       |\n| **orientation**    | **GPS**                | **0x04**       |\n| **headunit start** | **Autonomous driving** | **0x05**       |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsea-me-coss%2Fecu-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsea-me-coss%2Fecu-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsea-me-coss%2Fecu-core/lists"}