mirror of
https://github.com/CopterExpress/clover.git
synced 2026-06-01 23:49:32 +00:00
* Clover Blockly: add first blocks set * Adjust Blockly settings * Fix get_position output type * Add screenshot * Rename readme.md to README.md * Resize screenshot * Add package.xml * Little change * Fixes * Add python_compressed to blockly * Implement some of the Clover blocks in Python * Make Python indentation 4 spaces * Fixes to Python blocks implementation * Implement set_velocity block in Python * Implement wait_arrival block in Python * Fix indentation in Python implementation of blocks * Fix * Fix land_wait template * Set reserved words in Python * Change default frame_id to aruco_map in get_position block * Fix * Move blocks definitions to blocks.js * Get rid of missing favicon error * Simplify navigate * Rearrange layout, add tabs * Generate Python code * Small style change * -console.log * Code style * Use modules * Move modules to the header * Correct order for ROS definitions + generating "backend" code * Fix rangefinder_distance block * simple_offboard: commands to change only yaw and yaw rate * Implement set_yaw block * Start working on Blockly documentation * Implement print block with a topic * Unneeded code * Little fixes * Fix indentation * Fixes * Fix wait_arival, get_distance * Implement running Blockly programs, implement prompt block, fixes * Add land button * Little change * Fix reserved words + little fixes * +x for main.py * Simplify run button * Auto-save and load workspace * Make land button work * Handle exceptions * Minor change * Add help URL for blocks * Fix * Implement arrived block * Mark blockly and highlight.js as linguist-vendored * Add forgotten CMakeLists.txt * Add wait checkbox to set_yaw block * Disable run button when disconnected * Add message and service files * Add some comments * Add tooltip to some blocks * Implement GPIO blocks * Don’t latch print message to prevent duplication * Prevent duplication prompts * Add ROS init code to backend code anyways * Make GPIO blocks color a constant * Minor fix * More correctly update blocks on input value changes * Minor fixes * Remove unneeded readonly attribute * Add marker ID shadow blocks to toolbox * Add lacking reserved words * Fix frame id generation for complex marker id expressions * Consider frame_id in set_yaw block * Shorten ros module import * Implement stop service * Disable and enable run button correctly * Don’t print KeyboardInterrupt exceptions * Put notifications to notifications element * Add 'running' mark * Disable signal in backend python code * Sleep a little bit to let rospy initialize publishers * Remove accidental code * Make ROS namespace and private namespace constants * editorconfig-lint: don’t check Blockly code * Use private namespace constant in Python generator * Implement ~running topic to display current program status more robustly * Make navigate tolerance and sleep time constants * Make set_leds and and set_effect services proxies persistent * Replace a number with constant * Limit ~block topic publishing rate Otherwise messages get queued making the frontend to freeze * Improve internal documentation * Append 'map' to frames list * Return degrees in get_attitude block * Move getting yaw in a separate block * Improve block tooltips * Add some more files to editorconfig-lint excludes * Add get_yaw block to toolbox * Implement get_time block * Implement ~store and ~load services for storing user programs * Set auto_arm only in take_off block * Minor CSS fixes * Make 'Python' tab textarea-like * Implement saving and loading programs * Adjust styles * Retrieve only .xml files in load service * Forgotten code * Documentation on store and load services * Add some examples * Add blocks programming arg to launch file * Update docs * Add package’s dependencies * Add dependency * Add title to select * Fix syntax * Minor fix in docs * Add forgotten roslib.js * Run user program in the same process * Use print function for print block in Python 2 * Add variables example * Fix url * Add functions example * Fix set_servo block * Fix gpio_read block * Update blocks screenshot * Update docs * Update docs * Fix set_effect block * Minor fix in example * Add setpoint block, remove set_velocity from toolbox * Remove unused modules * Unused variable * Add English article skeleton * Clarify backend node link error * Remove unused variable * Update documentation * Fix link to documentation * Add Blockly logo * Update English article * Add Blocks programming link to the main page * Minor change * Add catkin_install_python to CMakeLists.txt * Make navigate tolerance and sleep time configurable * Add minor todo * Add blockly examples directory to editorconfig-lint excludes * Rename main node to clover_blocks * Add a warning to the old blocks programming article * Fix editorconfig-lint exclude
102 lines
4.4 KiB
XML
102 lines
4.4 KiB
XML
<launch>
|
|
<arg name="fcu_conn" default="usb"/>
|
|
<arg name="fcu_ip" default="127.0.0.1"/>
|
|
<arg name="fcu_sys_id" default="1"/>
|
|
<arg name="gcs_bridge" default="tcp"/>
|
|
<arg name="web_video_server" default="true"/>
|
|
<arg name="rosbridge" default="true"/>
|
|
<arg name="main_camera" default="true"/>
|
|
<arg name="optical_flow" default="true"/>
|
|
<arg name="aruco" default="false"/>
|
|
<arg name="rangefinder_vl53l1x" default="true"/>
|
|
<arg name="led" default="true"/>
|
|
<arg name="blocks" default="false"/>
|
|
<arg name="rc" default="true"/>
|
|
<arg name="shell" default="true"/>
|
|
|
|
<arg name="simulator" default="false"/> <!-- flag that we are operating on a simulated drone -->
|
|
|
|
<!-- log formatting -->
|
|
<env name="ROSCONSOLE_FORMAT" value="[${severity}] [${time}]: ${logger}: ${message}"/>
|
|
|
|
<!-- mavros -->
|
|
<include file="$(find clover)/launch/mavros.launch">
|
|
<arg name="fcu_conn" value="$(arg fcu_conn)"/>
|
|
<arg name="fcu_ip" value="$(arg fcu_ip)"/>
|
|
<arg name="fcu_sys_id" value="$(arg fcu_sys_id)"/>
|
|
<arg name="gcs_bridge" value="$(arg gcs_bridge)"/>
|
|
</include>
|
|
|
|
<!-- web video server -->
|
|
<node name="web_video_server" pkg="web_video_server" type="web_video_server" if="$(arg web_video_server)" required="false" respawn="true" respawn_delay="5">
|
|
<param name="default_stream_type" value="ros_compressed"/>
|
|
<param name="publish_rate" value="1.0"/>
|
|
</node>
|
|
|
|
<!-- aruco markers -->
|
|
<include file="$(find clover)/launch/aruco.launch" if="$(arg aruco)"/>
|
|
|
|
<!-- optical flow -->
|
|
<node pkg="nodelet" type="nodelet" name="optical_flow" args="load clover/optical_flow nodelet_manager" if="$(arg optical_flow)" clear_params="true" output="screen">
|
|
<remap from="image_raw" to="main_camera/image_raw"/>
|
|
<remap from="camera_info" to="main_camera/camera_info"/>
|
|
<param name="calc_flow_gyro" value="true"/>
|
|
<param name="roi_rad" value="0.8"/>
|
|
</node>
|
|
|
|
<!-- main nodelet manager -->
|
|
<node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager" output="screen" clear_params="true">
|
|
<param name="num_worker_threads" value="2"/>
|
|
</node>
|
|
|
|
<node pkg="tf2_ros" type="static_transform_publisher" name="map_flipped_frame" args="0 0 0 3.1415926 3.1415926 0 map map_flipped"/>
|
|
|
|
<!-- simplified offboard control -->
|
|
<node name="simple_offboard" pkg="clover" type="simple_offboard" output="screen" clear_params="true">
|
|
<param name="reference_frames/body" value="map"/>
|
|
<param name="reference_frames/base_link" value="map"/>
|
|
<param name="reference_frames/navigate_target" value="map"/>
|
|
<param name="reference_frames/main_camera_optical" value="map"/>
|
|
</node>
|
|
|
|
<!-- main camera -->
|
|
<include file="$(find clover)/launch/main_camera.launch" if="$(arg main_camera)">
|
|
<arg name="simulator" value="$(arg simulator)"/>
|
|
</include>
|
|
|
|
<!-- rosbridge -->
|
|
<include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch" if="$(eval rosbridge or rc)"/>
|
|
|
|
<!-- tf2 republisher for web visualization -->
|
|
<node name="tf2_web_republisher" pkg="tf2_web_republisher" type="tf2_web_republisher" output="screen" if="$(arg rosbridge)"/>
|
|
|
|
<!-- vl53l1x ToF rangefinder -->
|
|
<node name="rangefinder" pkg="vl53l1x" type="vl53l1x_node" output="screen" if="$(eval rangefinder_vl53l1x and not simulator)">
|
|
<param name="frame_id" value="rangefinder"/>
|
|
<param name="min_signal" value="0.4"/>
|
|
<param name="pass_statuses" type="yaml" value="[0, 6, 7, 11]"/>
|
|
</node>
|
|
|
|
<!-- led strip -->
|
|
<include file="$(find clover)/launch/led.launch" if="$(arg led)">
|
|
<arg name="simulator" value="$(arg simulator)"/>
|
|
</include>
|
|
|
|
<!-- Clover Blocks -->
|
|
<node name="clover_blocks" pkg="clover_blocks" type="clover_blocks" output="screen" if="$(arg blocks)"/>
|
|
|
|
<!-- rc backend -->
|
|
<node name="rc" pkg="clover" type="rc" output="screen" if="$(arg rc)" clear_params="true">
|
|
<!-- Send fake GCS heartbeats. Set to "true" for upstream PX4 -->
|
|
<param name="use_fake_gcs" value="false"/>
|
|
</node>
|
|
|
|
<!-- Shell access through ROS service -->
|
|
<node name="shell" pkg="clover" type="shell" output="screen" if="$(arg shell)"/>
|
|
|
|
<!-- Update static directory -->
|
|
<node pkg="roswww_static" name="roswww_static" type="main.py" clear_params="true">
|
|
<param name="default_package" value="clover"/>
|
|
</node>
|
|
</launch>
|