EnsekiTT Blog

EnsekiTTが書くブログです。

Unityでインホイールモーター(?)のカートを作ってみた話

こんにちは、えんせきです。
風邪をひいたり治ったりしながらだましだまし仕事をしています。
みなさんも弱ってる時のインフルエンザには気をつけてくださいね。

つまりなにしたの?

強化学習(ml-agents)のAgentにするべく、カートを作ろうと思ったけど、美味い作り方がわからずはからずもインホイールモータになった。
f:id:ensekitt:20180126012338j:plain

構成

  • Body

Cubeを変形して作った

  • Tire 4つ

Cylinderを変形して作った

駆動するところ

特に工夫はなく、タイヤにHinge Jointを適用して、各Hinge Jointを

	public GameObject tire_fl;

	// Use this for initialization
	void Start () {
		HingeJoint hinge_fl = tire_fl.GetComponent<HingeJoint> ();

		JointMotor motor_fl = hinge_fl.motor;

		motor_fl.force = -50;
		motor_fl.targetVelocity = 900;
		motor_fl.freeSpin = false;
		hinge_fl.motor = motor_fl;
		hinge_fl.useMotor = true;
        }

でとりあえず動かしてみた。
f:id:ensekitt:20180126010402g:plain
…うごいた。まあ、1つのタイヤだけ動かしたからだろ?

4輪とも動かしてみた

見にくかったからSci-Fi Textureを貼った。
f:id:ensekitt:20180126010546g:plain

車体が軽すぎることに気づく

f:id:ensekitt:20180126010701g:plain
よし!
今更だけど、2つのタイヤを軸で繋いでやればこんな似非インホイールモータみたいにならなくて
よかったかもしれない。

プロジェクトファイルはこちら

blog/20180124_cart/Cart at master · EnsekiTT/blog · GitHub


今度はこれをAgentにしていきたい。