dji RoboMaster EP Operating instructions


2
The RoboMaster EP programming guide is designed to help new users quickly learn programming
techniques for controlling the EP.
The RoboMaster lab offers hundreds of graphical programming blocks that allow you to access features like
PID control, computer vision, and more. While at first this may be challenging for beginners unfamiliar with
robots or basic programming, this guide includes instructions and example programs for each block to help
new users develop their skills. We suggest first reading through the guide to gain a basic understanding of
programming. Afterward, you can refer to it for help with any questions or challenges you encounter while
programming.
We hope you find this resource helpful to improving your programming skills, making the most of each
block, and learning new ways to win.
The RoboMaster EP programming lab offers five block types:
Block Type
Description
Block Example
Settings
Set parameters, such as speed, frequency, quantity
and more.
Execution
Control RoboMaster EP
to execute specified commands.
Event
Main function will pop out and begin to run programs
included in event blocks when certain conditional
statements are met.
Information
Returning different types of obtained data such as
variables, lists and more.
Conditional
Statement
Execute specified commands when conditional
statements are met.
Description
Block Example
Blcoking
Follow-up commands will not be executed before
blocking blocks stop running. A "wait for xx" block is
a typical blocking block.
Non-
blocking
Follow-up commands can be executed when non-
blocking blocks are running.
I

3
(1) Objective: Sets the first program executed when the robot powers on
(2) Type: Embedded block
(3) Example: Move forward 1 meter
This will control the EP to move forward by 1 meter.
Note:
If blocks (other than event triggering blocks and function blocks) are not placed within the “Start” area, they
will not be executed. For example, in the program shown below, the EP will not be able to take a photo.
Python API:
Function: start()
Type: Main function
(1) Objective: Sets the travel mode
●Chassis Lead Mode: The gimbal follows the chassis to rotate along the yaw axis.
●Gimbal Lead Mode: The chassis follows the gimbal to rotate along the yaw axis.
●Free Mode: The gimbal and the chassis move without affecting each other.
I

4
(2) Type: Settings block
(3) Examples: Rotate with variable speeds, Rotate together, Rotate contra directionally
① Rotate with variable speeds
In Chassis Lead Mode, you will only set parameters for the chassis. When the chassis is rotating to the left or
right with variable rotation speeds, check that the gimbal continuously follows the chassis and that the angle
between the gimbal and the chassis front is zero when chassis motion stops.
Note:
1) Chassis Lead Mode is the robot’s default travel mode.
2) In Chassis Lead Mode, if the chassis is not rotating, the gimbal will not be able to rotate left or right on its
own.
② Rotate together
In Gimbal Lead Mode, you will only set parameters for the gimbal.
When the gimbal is rotating along the yaw axis, check that the chassis also moves left and right and that it
follows the gimbal to return to the original position.

5
Note:
In Gimbal Lead Mode, if the gimbal is not rotating, the chassis will not be able to rotate left or right on its
own.
③ Rotate contra directionally
In Free Mode, the gimbal and the chassis rotate in opposite directions. In this mode, you will need to check
whether the gimbal and the chassis are interfering with each other’s motion.
Note:

6
In free mode, the "set chassis to follow gimbal at (0) ° "and “set gimbal to follow chassis at (0)° ”blocks will not
be able to take effect.
Python API:
Function: robot.set_mode(mode_enum)
Parameters:
●mode_enum(enum)
■ rm_define.robot_mode_gimbal_follow
■ rm_define.robot_mode_chassis_follow
■ rm_define.robot_mode_free
(1) Objective: Starts, pauses, or stops the timer
(2) Type: Execution block
(3) Example: Time a rotation
This measures the time it takes the chassis to complete one full rotation
You can check details using the FPV window:

7
Note:
1) Selecting “Pause” will hold the time currently displayed on the timer. The timer will resume measurement
from this time when it starts again.
Refer to the example below in which t1=2 and t2=5.
2) Select “Stop” to stop the timing process. The previously recorded time will be deleted, and the timer will
begin measurement from zero when it starts again. You can refer to the example below in which t1=2 and
t2=0.

8
Python API:
Function: tools.timer_ctrl(behavior_enum)
Parameters:
●behavior_enum(enum):
■ rm_define.timer_start
■ rm_define.timer_stop
■ rm_define.timer_reset
(1) Objective: Applies higher magnifications to support visual recognition over longer distances, enabling
the robot to focus on unclear objects more accurately
(2) Type: Execution block
(3) Example: Enlarge camera frame
Place a Vision Marker 10 meters in front of the robot’s gimbal and set the camera magnification to 4; the
robot will now be able to accurately recognize the Vision Marker at this distance.

9
Before running the enlarge camera frame program:
After enlarging the camera frame:

10
Python API:
Function: media_ctrl.zoom_value_update(value)
Parameters:
● value (int): [1, 4]
(1) Objective: Obtains the total time elapsed from when the timer first started to the current time (in seconds)
(2) Type: Information block (variable-type)
(3) Example: Time a rotation
This uses variables to measure the time it takes the chassis to complete one full rotation.
You can check details using the FPV window:

11
Python API:
Function: tools.timer_current()
Return value:
● time_stamp(float)
(1) Objective: Obtains the program running time (in seconds)
(2) Type: Information block (variable-type)
(3) Example: Calculate program runtime
This obtains the program running time using variables.
You can check specific details using the FPV window:

12
Python API:
Function: tools.run_time_of_program()
Return value:
●time (float)
(1) Objective: Acquires current time information including the year, month, day, hour, minute, and second
(2) Type: Information block (variable-type)
(3) Example: Compare time values
If the number of the current month is larger than the number of the current day, the robot will nod its head;
if the number of the current month is less than or equal to the number of the current day, the robot will
shake its head.

13
Python API:
Function: tools.get_localtime(time_enum)
Parameters:
● time_enum (enum):
■rm_define.localtime_year
■rm_define.localtime_month
■rm_define.localtime_day
■rm_define.localtime_hour
■rm_define.localtime_minute
■rm_define.localtime_second
Return value
● time (int)
(1) Objective: Indicates the total time elapsed from when the robot started running up to the current time (in
seconds)
(2) Type: Information block (variable-type)
(3) Example: Calculate running time
This measures the total time elapsed from when the robot most recently started running up to the current
hour, minute, and second.

14
You can check data changes using the FPV window.
The robot will need to take a break when program runtime reaches one hour.
(i.e., when runTime_hour>1).
Note:
1) The start time refers to the time when the robot is powered on.
2) If the robot restarts after a power failure, it will recount the running time.
Python API:
Function: tools.get_unixtime()
Return value:
● time (float)

15
(1) Objective: Sets the flash rate for LEDs
(2) Type: Settings block
(3) Example: Configure reverse light
This will set the rear LED of the chassis to flash red four times per second when reversing.
Python API:
Function: led_ctrl.set_flash(armor_enum, frequency)
Parameters:
●armor_enum(enum):
■rm_define.armor_all
■rm_define.armor_bottom_front
■rm_define.armor_bottom_back
■rm_define.armor_bottom_left
■rm_define.armor_bottom_right
■rm_define.armor_top_left
■rm_define.armor_top_right
● frequency(int): [1, 10]
I

16
(1) Objective: Sets chassis LED colors and effects
●Solid: LED will remain steady
●Off: LED will switch off
●Pulse: LED will flicker
●Blink: LED will blink at a specified frequency
(2) Type: Execution block
(3) Example: Display streaming color effects
This will set the robot to switch off all LEDs on the chassis for one second, and then flash all LED colors in
sequence.
Python API:
Function: led_ctrl.set_bottom_led(armor_enum, r, g, b, led_effect_enum)
Parameters:
● armor_enum(enum):
■ rm_define.armor_bottom_all
■ rm_define.armor_bottom_front
■ rm_define.armor_bottom_back
■ rm_define.armor_bottom_left
■ rm_define.armor_bottom_right
● r(int): [0, 255]
● g(int): [0, 255]
● b(int): [0, 255]
● led_effect_enum(enum):
■ rm_define.effect_always_on

17
■ rm_define.effect_always_off
■ rm_define.effect_breath
■ rm_define.effect_flash
(1) Objective: Sets gimbal LED colors and effects
●Solid: LED will remain steady
●Off: LED will switch off
●Pulse: LED will flicker
●Blink: LED will blink at a specified frequency
●Scrolling: Eight LEDs arranged in a circle will light up in clockwise direction
(2) Type: Execution block
(3) Example: Show off gimbal LED effects
This will set the robot to display all five gimbal LED effects in sequence.
Python API:
Function: led_ctrl.set_top_led(armor_enum, r, g, b, led_effect_enum)
Parameters:
● armor_enum(enum):

18
■ rm_define.armor_top_all
■ rm_define.armor_top_left
■ rm_define.armor_top_right
● r(int): [0, 255]
● g(int): [0, 255]
● b(int): [0, 255]
● led_effect_enum(enum):
■ rm_define.effect_always_on
■ rm_define.effect_always_off
■ rm_define.effect_breath
■ rm_define.effect_flash
■ rm_define.effect_marquee
(1) Objective: Sets the flash sequence for the gimbal LEDs; eight LEDs are located on each side of the gimbal
and can be controlled independently
(2) Type: Execution block
(3) Example: Switch on a single light
This will set the robot to switch off all the gimbal LEDs, switch on the odd-numbered LEDs in ascending order,
and then switch off all LEDs.
The figure below shows a counterclockwise LED arrangement.

19
Note:
You can choose multiple LEDs to activate simultaneously.
Python API:
Function: led_ctrl.set_signle_led(armor_enum, led_index, led_effect_enum)
Parameters:
●armor_enum(enum):
■rm_define.armor_top_all
■rm_define.armor_top_left
■rm_define.armor_top_right
●index(int/list): [1, 8]
●led_effect_enum(enum):
■rm_define.effect_always_on
■rm_define.effect_always_off
(1) Objective: Switches off designated LEDs
(2) Type: Execution block
(3) Example: Configure signal light
This will set the robot to switch on LEDs on the right side of the gimbal before turning right; after the turn is
complete, it will switch the LED off.
Other manuals for RoboMaster EP
4
Table of contents
Other dji Robotics manuals

dji
dji Robomaster S1 Instruction Manual

dji
dji Robomaster S1 User manual

dji
dji Robomaster S1 User manual

dji
dji RoboMaster EP Instruction Manual

dji
dji RoboMaster LI01 User manual

dji
dji Robomaster S1 User manual

dji
dji RoboMaster EP User manual

dji
dji ROBOMASTER User manual

dji
dji Robomaster S1 User manual